【问题标题】:Cannot find visible element找不到可见元素
【发布时间】:2019-05-16 08:22:02
【问题描述】:


我需要帮助来寻找独特的元素来找到这些文本。我不知道为什么我的 xpath 不起作用请检查:附加的图像是文本的元素。

(new WebDriverWait(driver,10)).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//div[@class='"+viz+"']/h2[text()='"+reports+"']")));

在哪里

String reports = Overdue Stock Analysis 
String viz = dashlet-wrapper

错误信息是这样的:

预期条件失败:等待 By.xpath 定位的所有元素的可见性: //div[@class='dashlet-wrapper']/h2[text()='过期库存分析'] (尝试 10 秒,间隔 500 毫秒)

【问题讨论】:

  • 你能把链接发到页面吗?
  • 你能告诉我们System.out.println(driver.findElements(By.xpath("//div[@class='dashlet-wrapper']/h2[text()='Overdue Stock Analysis']")).size());打印了什么吗?
  • 对不起,由于权利和访问它是不可能的,任何用户都不容易导航
  • 您是否确认该元素不在 IFRAME 中?此外,您正在等待所有元素可见......您是否检查过是否有第二个(或更多)元素与可能永远不可见的定位器匹配?当页面上也存在移动/平板电脑版本时,有时会发生这种情况。

标签: java selenium automation


【解决方案1】:

您可以使用我在预期条件中提到的 xpath 来查找元素和 如果只需要通过 xpath 获取一个元素,则应使用 visibilityOfElementLocated 而不是方法 visibilityOfAllElementsLocatedBy 因为 visibilityOfAllElementsLocatedBy 用于检查元素列表的可见性,而不仅仅是单个元素。

您可以使用visibilityOfElementLocated 喜欢:

(new WebDriverWait(driver,10)).until(ExpectedConditions. visibilityOfElementLocated(By.xpath("//div[@class='"+viz+"']//h2[@data-title='"+reports+"']")));

【讨论】:

  • visibilityOfAllElementsLocatedBy 将等待一个元素或网络元素列表。但他得到的例外说明了别的东西。
  • @cruisepandey 我已经修改了答案并在我的答案中添加了新的 xpath
猜你喜欢
  • 2019-10-06
  • 2018-11-16
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 2017-06-30
  • 1970-01-01
相关资源
最近更新 更多