java – Selenium单击“成功”元素,但实际上并没有单击它

前端之家收集整理的这篇文章主要介绍了java – Selenium单击“成功”元素,但实际上并没有单击它前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个单击按钮的方法,但是,当它运行时,selenium会在成功点击时返回结果,而实际上,实际上没有点击按钮.如果我多次运行测试,偶尔会按预期点击它.我将我的测试框架设置为隐式等待大约15秒,我已经设置了明确的等待这个元素,但仍然看到相同的问题.当我执行< element> .isDisplayed()时,始终会找到该元素.我将.click放在一个while循环中,点击它几次,大部分时间都有效,有时候测试失败了.是否可以在单击按钮之前使用if语句检查元素是否实际显示

我试过了:

  1. if(!element.isDisplayed){
  2. element.click
  3. }

这是我遇到问题的按钮:

  1. <button class="notkoButton listNew">
  2. <div class="l6e iconAdd">New List</div>
  3. </button>

这是我的方法

  1. public marketing_lists_page navigateToNewListPage() throws Throwable {
  2. try {
  3. int x = 0;
  4. while(x < 5) {
  5. newListBtn.click();
  6. x++;
  7. }
  8. //newListPageHeader.isDisplayed();
  9. } catch (NoSuchElementException e){
  10. logs.errorDetails("Could not navigate to New List Page");
  11. Assert.fail();
  12. }
  13. return this;
  14. }

解决方法

看起来元素最初未启用或无法点击.要回答你的问题,是的,你可以使用明确的等待并等待元素可点击:
  1. WebDriverWait wait = new WebDriverWait(driver,timeOut);
  2. wait.until(ExpectedConditions.elementToBeClickable(locator));

猜你在找的Java相关文章