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单击。请参见上面我编辑的答案。