【问题标题】:Unable to click on button available on the page无法点击页面上可用的按钮
【发布时间】:2019-06-17 10:25:54
【问题描述】:
<button class="md-trigger btn btn-primary mrg-b-lg" data-toggle="modal" data-target="CaseProcessmodal" id="AddCaseButton" onclick="return validateForm('#CaseProcessmodal');">Add Case</button>

我有一个像上面这样的元素位置,试图点击 selenium 中的按钮,它不起作用。我正在使用页面工厂,但元素 id 是正确匹配的。

用其他匹配的元素 id 验证。

【问题讨论】:

  • 请格式化您的问题并添加信息,例如页面来源、您使用的代码以及您遇到的错误。

标签: java selenium xpath css-selectors webdriverwait


【解决方案1】:

所需的元素在 Modal Dialog 中,因此对于 click() 元素,您必须为 elementToBeClickable() 诱导 WebDriverWait 并且您可以使用关注Locator Strategies

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.md-trigger.btn.btn-primary.mrg-b-lg#AddCaseButton[data-target='CaseProcessmodal']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='md-trigger btn btn-primary mrg-b-lg' and @id='AddCaseButton'][text()='Add Case']"))).click();
    

【讨论】:

  • 我已经尝试过等待公式:Utils.scrollIntoView(driver, AddcaseButton); WebDriverWait 等待 = 新的 WebDriverWait(驱动程序, 30); wait.until(ExpectedConditions.refreshed(ExpectedConditions.elementToBeClickable(AddcaseButton)));它也不起作用。尝试给予等待,行动等一切。单击按钮后,将出现一个处理屏幕,并应关闭该窗口。点击操作根本不起作用
【解决方案2】:

我找到了解决这个 if 条件的解决方案,agian 应用了点击操作。成功了。

【讨论】:

    猜你喜欢
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 2021-04-08
    • 2016-08-02
    • 2015-09-09
    • 2020-07-21
    相关资源
    最近更新 更多