【问题标题】:Not able to click on the element inside the div tag无法单击 div 标签内的元素
【发布时间】:2017-07-19 14:35:35
【问题描述】:

我无法点击公共按钮。

我尝试了下面的代码并收到错误消息

没有这样的元素:无法找到元素:

WebElement el2 = driver.findElement(By.xpath("//div[contains(@class, 'title') and text()='Public']"));
JavascriptExecutor executor2 = (JavascriptExecutor)driver;
executor2.executeScript("arguments[0].click()", el2);

请查看附件截图。

【问题讨论】:

  • 在论坛搜索该问题已多次回答。

标签: selenium selenium-webdriver


【解决方案1】:

这里有两件事可能导致没有这样的元素异常:

  1. 元素的 css 值可能为 text-transform: capitalize。如果是这种情况,那么如果 html 中的实际文本值为“public”,那么您的 XPath 将无法找到 text()='Public'。试试text()='public',或者寻找不区分大小写的方法。

  2. 页面尚未完全加载。尝试使用调试器缓慢地单步执行代码(允许大量时间加载页面)。如果它像计时一样简单,那么您可以在找到元素之前添加一个 WebDriver 等待。

【讨论】:

  • 您能否分享一些关于text-transform: capitalize 的特殊信息。谢谢
  • 它将大写网页上的单词,但不在 DOM 中。所以 WebDriver 会寻找“Public”(因为这是开发人员在网页上看到的),但 DOM 将包含“public”(因为 css 不会修改 DOM,只会修改网页)。
  • 感谢 Stewart 提供的信息,我已尝试使用 text()='public',但问题仍然存在。
猜你喜欢
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-20
  • 2018-06-05
相关资源
最近更新 更多