微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我找不到使用类名的元素?

如何解决为什么我找不到使用类名的元素?

我正在尝试找到此按钮并单击它。 但我收到此错误

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".sqdOP  L3NKy   y3zKF     "}
  (Session info: chrome=87.0.4280.88)

我注意到它正在寻找一个不同的字符串 '.sqdOP L3NKy y3zKF' bc 它在类名前面添加了这一点。这是问题吗?

<button class="sqdOP  L3NKy   y3zKF     " type="button">Follow</button>

谢谢!

解决方法

如果 classname 值包含空格,Selenium 无法通过点“.”定位它。 你必须使用这种结构:

"[class='sqdOP  L3NKy   y3zKF     ']"

或者只是尝试使用 XPath 通过可见文本进行定位:

"//button[text()='Follow']"

如果您收到 Element 点击拦截异常,请尝试通过 JS 进行点击,如下所示:

 public void executeClickJS(WebDriver driver,WebElement webElement) {
    ((JavascriptExecutor) driver).executeScript("arguments[0].click();",webElement);
  }
,

如果没有具有相同类名的按钮,您也可以通过此找到它: driver.find_element_by_class_name("sqdOP")

Selenium 无法识别类名中的空格(除非您执行类似 Villa_7 所说的操作),因为它们实际上是“复合类”(参见 this postthis one)。我相信这与 CSS 有关系。

仅供参考,查看有关您当前尝试选择按钮的方式的代码会很有帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。