Broken PipeError 而使用硒和 chromedriver



执行以下代码以尝试抓取网站的索引页,并尝试识别包含登录文本的元素时,如下所示:

from selenium import webdriver
import os
chromedriver = "/usr/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
my_url = 'https://www.pastest.com/'
driver.implicitly_wait(15)
driver.get(my_url)
driver.quit()
p_element = driver.find_element_by_class_name('popup-link')
print(p_element.text)

我收到以下错误:

Traceback (most recent call last):
  File "scrape_pastest.py", line 17, in <module>
    p_element = driver.find_element_by_class_name('popup-link')
  File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 555, in find_element_by_class_name
    return self.find_element(by=By.CLASS_NAME, value=name)
  File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 955, in find_element
    'value': value})['value']
  File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 310, in execute
    response = self.command_executor.execute(driver_command, params)
  File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 466, in execute
    return self._request(command_info[0], url, body=data)
  File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 489, in _request
    self._conn.request(method, parsed_url.path, body, headers)
  File "/usr/lib/python3.6/http/client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1065, in _send_output
    self.send(chunk)
  File "/usr/lib/python3.6/http/client.py", line 986, in send
    self.sock.sendall(data)
BrokenPipeError: [Errno 32] Broken pipe

当我第一次遇到错误时,我专门添加了行driver.implicitly_wait(15)来处理任何超时错误。我也试过selenium_client.set_page_load_timeout(10),但这也没有帮助。

这个问题是由于什么造成的?我该如何解决它?

呼叫find_element_by_class_namequit驱动程序。

根据selenium.webdriver文档:

退出((

Closes the browser and shuts down the ChromeDriver executable that is started when starting the ChromeDriver

driver.quit关闭浏览器会话,之后您无法使用驱动程序搜索元素。

相关内容

  • 没有找到相关文章

最新更新