【问题标题】:How to click on the button element如何点击按钮元素
【发布时间】:2019-03-19 17:11:52
【问题描述】:

如何点击按钮元素?

这里是 HTML:

<button class="ui-button ui-widget ui-state-default ui-corner-all ui- 
button-icon-only ui-dialog-titlebar-close" type="button" role="button" 
aria-disabled="false" title="close">
<span class="ui-button-icon-primary ui-icon ui-icon-closethick"></span>
<span class="ui-button-text">close</span>
</button>

错误是“元素在点 (1165.88330078125, 427.76666259765625) 处不可点击。其他元素会收到点击: 命令持续时间或超时:77 毫秒"

如果有帮助,我正在使用 Selenium 2.53.1。

我正在使用 Java 编写自动化脚本。

【问题讨论】:

  • 请为您的 java 代码提供 html dom 代码。仅仅通过阅读错误并不能澄清问题。
  • 用你的编码试验更新问题。
  • driver.findElement(By.XPath("*//button[@title='close']"));
  • @AshishKamble 当我尝试在正文中粘贴更多 HTML 时,它会引发错误“您的帖子似乎包含未正确格式化为代码的代码。请使用代码将所有代码缩进 4 个空格工具栏按钮或 CTRL+K 键盘快捷键。有关更多编辑帮助,请单击 [?] 工具栏图标。"
  • 请仔细阅读这个问题的答案,stackoverflow.com/questions/44912203/… 阅读@DebanjanB 的答案,您的问题将得到解决。有六个因素会影响此类问题。

标签: java selenium xpath css-selectors webdriverwait


【解决方案1】:

要单击所需的元素,您需要诱导 WebDriverWait 以使所需的元素可点击,您可以使用以下任一解决方案:

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-icon-only.ui-dialog-titlebar-close[title='close']>span.ui-button-text"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close' and @title='close']/span[@class='ui-button-text' and contains(.,'close')]"))).click();
    

【讨论】:

    猜你喜欢
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2011-02-18
    • 1970-01-01
    • 2023-01-13
    相关资源
    最近更新 更多