【问题标题】:Selenium Webdriver findelements able to gettext of elements but not able to clickSelenium Webdriver findelements能够获取元素的文本但无法点击
【发布时间】:2017-06-18 02:22:02
【问题描述】:

我正在尝试使用以下代码从下拉菜单中获取所有元素:

List<WebElement> actmenu = driver.findElements(By.className("mbrMenuItems")); 
    for (int i = 0; i < actmenu.size(); i++) {
        System.out.println(actmenu.get(i).getText());
    }
    actmenu.get(0).click();
    actmenu.get(1).click();

所以,我可以使用 for 循环打印链接文本,但我无法点击元素,引发以下错误:

Exception in thread "main" org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with Command duration or timeout: 30.31 seconds

对解决这个错误有什么帮助吗?

【问题讨论】:

  • 您是否在 UI 中检查了此元素?它是可见的还是隐藏的?
  • 您可能会查看this post 以了解与可见元素相同的问题
  • 它是 UI 中的可见元素,我可以使用 for 循环获取下拉菜单中所有链接的文本。我无法点击它
  • 您是否尝试过像我提出的帖子那样使用 java 脚本点击?
  • 在哪一行抛出异常?程序的完整输出是什么?单击链接时会发生什么?它是离开页面还是?

标签: java selenium webdriver gettext elements


【解决方案1】:

.getText() 方法从 HTML 源返回值。也许您尝试单击的元素尚未呈现?尝试等待一个元素

WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.visibilityOf(element);

上面的代码将等待 10 秒,直到元素可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 2016-01-18
    • 2022-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多