Selenium phantomjs单击课内的按钮



我尝试使用WebDriver phantonjs单击按钮时有问题。我的代码是这样:

from selenium import webdriver
driver = webdriver.PhantomJS()
driver.set_window_size(1120, 550)
driver.get("https://www.instagram.com/nike/")
dt = driver.find_elements_by_class_name("a_8imhp _glz1g")
for i in dt:
    i.click()
driver.quit()

错误是:

  File "test.py", line 8, in <module>
    dt = driver.find_elements_by_class_name("a_8imhp _glz1g")
  File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 427, in find_elements_by_class_name
    return self.find_elements(by=By.CLASS_NAME, value=name)
  File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 782, in find_elements
    'value': value})['value']
  File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 238, in execute
    self.error_handler.check_response(response)
  File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 193, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: {"errorMessage":"Compound class names not permitted","request":{"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"103","Content-Type":"application/json;charset=UTF-8","Host":"127.0.0.1:41380","User-Agent":"Python-urllib/3.6"},"httpVersion":"1.1","method":"POST","post":"{"using": "class name", "value": "a_8imhp _glz1g", "sessionId": "fba6d030-4934-11e7-8712-9506860019f4"}","url":"/elements","urlParsed":{"anchor":"","query":"","file":"elements","directory":"/","path":"/elements","relative":"/elements","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/elements","queryKey":{},"chunks":["elements"]},"urlOriginal":"/session/fba6d030-4934-11e7-8712-9506860019f4/elements"}}
Screenshot: available via screen

您不能将一个以上的类名称传递给find_elements_by_class_name()。您可以尝试传递单个名称,例如

driver.find_elements_by_class_name("a_8imhp")

或使用复杂的选择器,例如XPathCSS选择器

只需替换这个

dt = driver.find_elements_by_class_name("a_8imhp _glz1g")

使用此

dt = driver.find_elements_by_css_selector(".a_8imhp._glz1g")

或此

dt = driver.find_elements_by_xpath("//*[@class='a_8imhp _glz1g')

最新更新