【问题标题】:Error when trying to click on link尝试点击链接时出错
【发布时间】:2017-04-10 20:23:56
【问题描述】:

单击链接不起作用,并显示以下错误。我尝试同时使用 Xpath 和 Linktext

代码

driver.findElement(By.linkText("Repayment Options")).click();
driver.findElement(By.xpath(".//*@id='menucontent']/div/nav/ul/li[6]/a")).click();

错误

"Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Element
<a href="/RepaymentOptions/RepaymentOptions">...</a> is not clickable at point (312, 404).
Other element would receive the click:<div class="modal-backdrop fade"></div>"

【问题讨论】:

标签: java eclipse google-chrome selenium


【解决方案1】:

如果您遇到任何无法直接处理的异常困难,那么您可以先尝试使用操作类移动到该元素,然后单击它,如下所示:

 WebElement we = driver.findElement(By.cssSelector("#menucontent > div > nav > ul > li:nth-child(6) > a");
 Actions action = new Actions(driver);
 action.moveToElement(we).click().build().perform();

【讨论】:

    【解决方案2】:

    如果您仔细查看错误,它会告诉您问题所在。 Selenium 正在尝试单击您请求的元素,但它当前被另一个元素阻止。如果您查看将收到点击的元素的 HTML,您会看到

    <div class="modal-backdrop fade"></div>
    

    这可能是当前打开的对话框背后的半透明背景,或者您刚刚关闭,但浏览器比您的代码慢一点。解决此问题的一种方法是等待此模态背景消失。你可以这样做

    new WebDriverWait(driver, 3).until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("div.modal-backdrop")));
    driver.findElement(By.linkText("Repayment Options")).click();
    driver.findElement(By.xpath(".//*@id='menucontent']/div/nav/ul/li[6]/a")).click();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多