java - 尽管在网页上可用,但无法单击某个元素

标签 java selenium-webdriver xpath css-selectors webdriverwait

尽管 Web 驱动程序能够找到元素,但无法单击该元素。

已应用隐式等待。另外,尝试了显式等待,但是当显式等待获取错误元素未附加到页面时

WebElement sales_order_doc_type_dropdown = driver.findElement(By.xpath("//input[@id='WD67']"));
sales_order_doc_type_dropdown.click();

元素的 HTML 代码

<input id="WD67" ct="CB" lsdata="{1:'26.4ex',5:true,8:'WD68',9:'1'}" lsevents="{Select:[{ResponseData:'delta',ClientAction:'submit'},{}]}" type="text" autocomplete="off" tabindex="0" ti="0" class="urEdf2TxtEnbl lsEdfLeftBrdRadius lsEdf3TxtHlpBtn urBorderBox lsControl--explicitwidth" readonly="" value="" style="vertical-align:top;width:26.4ex;">

最佳答案

所需的元素是动态元素,因此要在该元素上click(),您必须为elementToBeClickable()引发WebDriverWait并且您可以使用以下任一 Locator Strategies :

  • css选择器:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[id^='WD'][ct='CB'][lsevents*='ClientAction']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[starts-with(@id, 'WD') and @ct='CB'][contains(@lsevents, 'ClientAction')]"))).click();
    

关于java - 尽管在网页上可用,但无法单击某个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57411228/

相关文章:

java - 一个接一个地延迟显示 JLabel 的问题

java - 使用 RecyclerView 的正确方法?

html - 使用xpath的Selenium-如何使用同级元素文本获取元素文本

java - 使 Eclipse IDE 运行代码速度变慢

xml - 使用 XPath 查询 XSD 以获取节点详细信息

java - 使用 DecimalFormat 设置双数格式

Java:使用 Junit 3 进行异常测试

java - 如何在java中查找<Strong><br>标签的工具提示文本消息

java - 使用 selenium webdriver 在页面中查找选项卡

javascript - XPath 表达式在 Chrome 中返回 'illegal string specified' 而不是 FF