【问题标题】:How to click on the element using Selenium through Java如何通过 Java 使用 Selenium 点击元素
【发布时间】:2020-04-28 01:09:06
【问题描述】:

我正在尝试使用相邻兄弟从下拉列表中选择值,但不起作用

这里是 HTML:

<div id="dependsOnQuestionDiv"><div class="x-form-field-wrap x-form-field-trigger-wrap" id="ext-gen197" style="width: 17px;"><input type="text" size="24" autocomplete="off" id="dependsOnQuestion" name="dependsOnQuestion" class="x-form-text x-form-field x-trigger-noedit" readonly="" title="" style="width: 345px;"><img src="/mco/extjs/resources/images/default/s.gif" alt="" class="x-form-trigger x-form-arrow-trigger" id="ext-gen198"></div></div>

我已经尝试了这些方法:

(xpath =
 "//input[@id='dependsOnQuestion']/following-sibling::img[@id='ext-gen198']"

和

> css = #dependsOnQuestion ~img "

但是它点击了其他有图片标签的元素

这是另一个图像标签 HTML,当我尝试单击下拉菜单时会单击它

<td class="x-grid3-col x-grid3-cell x-grid3-td-edit  x-action-col-cell" style="width: 41px;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-edit x-unselectable" unselectable="on"><img alt="" src="/mco/images/edit-button.png" class="x-action-col-icon x-action-col-0  "></div></td>

<div class="x-grid3-cell-inner x-grid3-col-edit x-unselectable" unselectable="on" xpath="1"><img alt="" src="/mco/images/edit-button.png" class="x-action-col-icon x-action-col-0 " style=""></div>

谁能帮帮我?

【问题讨论】:

  • 那么您是在为每个元素寻找通用 xpath 还是单独的 xpath?
  • 我正在寻找下拉通用 xpath

标签: java selenium xpath css-selectors webdriverwait


【解决方案1】:

到click() 元素上你必须为elementToBeClickable() 诱导WebDriverWait 并且你可以使用以下Locator Strategies 之一:

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div#dependsOnQuestionDiv input.x-form-text.x-form-field.x-trigger-noedit#dependsOnQuestion[name='dependsOnQuestion']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@id='dependsOnQuestionDiv']//input[@class='x-form-text x-form-field x-trigger-noedit' and @id='dependsOnQuestion'][@name='dependsOnQuestion']"))).click();
    

【讨论】:

  • 谢谢@DebanjanB 我已经尝试过你的建议,但我不知道它点击了另一个按钮......这里是另一个按钮 Html...... ..................................................... .........
【解决方案2】:

试试下面的XPATH 选项。

xpath = "//img[@id='ext-gen198']/preceding-sibling::input[@id='dependsOnQuestion']"

或

 xpath = "//img[@id='ext-gen198']/preceding-sibling::input[1]"

【讨论】:

  • 感谢 KunduK 我已经尝试过您建议的 x 路径,但它选择了另一个带有图像标签的元素
  • 您能否正确发布 HTML 以便于您的查询回复?
  • @sap :花点时间复制您正在寻找有效 xpath 的整个标签并正确发布。
  • @sap :第二个 xpath 应该可以让您点击输入元素
  • 我也尝试过它点击另一个元素而不是下拉菜单
猜你喜欢
  • 2020-04-09
  • 1970-01-01
  • 2019-06-09
  • 2022-01-17
  • 2019-05-10
  • 1970-01-01
  • 2017-06-09
  • 1970-01-01
相关资源
最近更新 更多