Python 为什么可以';我不能使用类名查找元素吗?
我试图找到这个按钮并点击它。 但我得到了这个错误:Python 为什么可以';我不能使用类名查找元素吗?,python,selenium,classname,Python,Selenium,Classname,我试图找到这个按钮并点击它。 但我得到了这个错误: selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".sqdOP L3NKy y3zKF "} (Session info
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']"
如果您得到元素单击拦截异常,请尝试通过JS单击,如下所示:
public void executeClickJS(WebDriver driver, WebElement webElement) {
((JavascriptExecutor) driver).executeScript("arguments[0].click();", webElement);
}
如果没有具有相同类名的按钮,您也可以使用此按钮找到它:
驱动程序。通过类名称(“sqdOP”)查找元素
Selenium不识别类名中的空格(除非您像Villa_7所说的那样),因为它们实际上是“复合类”(请参阅和)。我相信这与CSS有关
仅供参考,查看您当前如何尝试选择按钮的代码会很有帮助。您使用的选择器是什么?。当我尝试运行第一个解决方案时,收到以下错误:selenium.common.exceptions.InvalidSelectorException:消息:无效选择器:指定了无效或非法的选择器,而第二个解决方案出现另一个错误:selenium.common.exceptions.element ClickInterceptedException:消息:元素单击intercepted:要素在点(315202)处不可单击。其他元素将收到单击:。。。(会话信息:chrome=87.0.4280.88)@user4248尝试使用第二种解决方案,但通过JavascriptExecutor单击。请参见上面我编辑的答案。