如何解决为什么我找不到使用类名的元素?
我正在尝试找到此按钮并单击它。 但我收到此错误:
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 post 和 this one)。我相信这与 CSS 有关系。
仅供参考,查看有关您当前尝试选择按钮的方式的代码会很有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。