0
Error message : selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression ". clickable event-link math " is invalid: InvalidSelectorError: Document.querySelector: '. clickable event-link math ' is not a valid selector: ". clickable event-link math "

我的猜测是由于空格导致我看到了与空格类似的问题,但找不到适合我的解决方案

Algebra = ' clickable event-link math '
math = driver.find_element_by_class_name(Algebra)
4

2 回答 2

1

这意味着元素有几个类...尝试使用CSS-selector

driver.find_element_by_css_selector(".clickable.event-link.math")
于 2021-01-25T15:37:11.537 回答
0

根据selenium.webdriver.common.by实施文档:

class selenium.webdriver.common.by.By
    Set of supported locator strategies.

    CLASS_NAME = 'class name'
    

所以,

  • 使用find_element_by_class_name()您将无法传递多个类名。传递多个类,您将面临以下错误:

      Message: invalid selector: Compound class names not permitted
    
  • 此外,由于您想返回一个聊天数组,所以find_element*您需要使用find_elements*


解决方案

作为替代方案,您可以使用以下任一定位器策略

  • CSS_SELECTOR

      math = driver.find_element(By.CSS_SELECTOR, ".clickable.event-link math")
    
  • XPATH

      math = driver.find_element(By.XPATH, "//*[contains(@class, 'clickable') and contains(@class, 'event-link math')]")
    

参考

您可以在以下位置找到一些相关的详细讨论:

于 2021-01-25T19:48:01.847 回答