当前位置: 首页 > 知识库问答 >
问题:

如何通过Chromedriver和Selenium启动Chrome浏览器

时才俊
2023-03-14

我突然遇到了硒和铬驱动的错误问题。我还没有改变一件事,但我遇到了这些错误信息。这个脚本在几个小时前就开始工作了,现在没有任何调整,它不工作了。

 traceback (most recent call last):
  File "email.py", line 3, in <module>
    from selenium import webdriver
  File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\__init__.py", line 18, in <module>
    from .firefox.webdriver import WebDriver as Firefox  # noqa
  File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 20, in <module>
    import http.client as http_client
  File "C:\ProgramData\Anaconda3\lib\http\client.py", line 71, in <module>
    import email.parser
  File "C:\Users\Doe Labs\Desktop\Austin\Scripts\email.py", line 12, in <module>
    options = webdriver.ChromeOptions()

这是我对应的代码:

import pyautogui
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import WebDriverWait

caps = DesiredCapabilities().CHROME
#caps["pageLoadStrategy"] = "eager"

options = webdriver.ChromeOptions() 
options.add_argument(r'load-extension=C:\Users\Doe Labs\Desktop\Austin\sales_prospecting\facebookpixelhelper')
#options.add_argument('start-fullscreen')
options.add_argument('disable-infobars')
driver=webdriver.Chrome(desired_capabilities = caps, executable_path=r'C:\Users\Doe Labs\Desktop\Austin\sales_prospecting\chromedriver', chrome_options=options)

driver.get('http://www.doelabs.com/')
driver.maximize_window()

更奇怪的是,当打开新终端、加载python并从selenium import webdriver中键入时,我没有收到任何错误。但是,当我导航到脚本所在的文件夹,并从selenium import webdriver加载python和类型时,我会收到上面显示的错误消息。我希望这能让我对目前的困境有所了解。

共有2个答案

萧波峻
2023-03-14

你可能想换衣服

executable_path=r'C:\Users\Doe Labs\Desktop\Austin\sales_prospecting\chromedriver',

executable_path=r'C:\Users\Doe Labs\Desktop\Austin\sales_prospecting\chromedriver.exe',

您似乎错过了. exe,可执行文件的扩展名。

戴靖
2023-03-14

关于解决方案的几句话:

>

  • 电子邮件是Python语言中的保留字/关键字,避免在用户定义的文件名/方法/类中使用电子邮件。
  • pageLoadStrategy由于渴望尚未在ChromeDriver中实现,请根据您的要求使用正常
  • 要最大化浏览器窗口Chrome而不是maximize_window(),请使用参数start最大化通过ChromeOptions()
  • 使用ChromeOptions加载扩展,如下所示:

    options.addExtensions(new File("/path/to/extension.crx"));
    

    以下是通过ChromeDriver初始化Chrome浏览器的四种方法:

    >

  • 瓦尼拉方法:

    from selenium import webdriver
    
    driver = webdriver.Firefox(r'C:\path\to\chromedriver.exe')
    driver.get('http://www.doelabs.com/')
    print("Page Title is : %s" %driver.title)
    driver.quit()
    

    参数为ChromeOptions:

    from selenium import webdriver
    
    options = webdriver.ChromeOptions() 
    options.addExtensions(new File("C:\Users\Doe Labs\Desktop\Austin\sales_prospecting\facebookpixelhelper.crx"));
    options.add_argument('start-maximized')
    options.add_argument('disable-infobars')
    driver=webdriver.Chrome(chrome_options=options, executable_path=r'C:\path\to\chromedriver.exe')
    driver.get('http://www.doelabs.com/')
    print("Page Title is : %s" %driver.title)
    driver.quit()
    

    作为期望的能力:

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    caps = DesiredCapabilities().CHROME.copy()
    caps["pageLoadStrategy"] = "normal"
    driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', desired_capabilities=caps)
    driver.get('http://www.doelabs.com/')
    print("Page Title is : %s" %driver.title)
    driver.quit()
    

    参数为ChromeOptions,功能为DesiredCapability:

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    caps = DesiredCapabilities().CHROME.copy()
    caps["pageLoadStrategy"] = "normal"
    
    options = webdriver.ChromeOptions() 
    options.addExtensions(new File("C:\Users\Doe Labs\Desktop\Austin\sales_prospecting\facebookpixelhelper.crx"));
    options.add_argument('start-maximized')
    options.add_argument('disable-infobars')
    driver=webdriver.Chrome(chrome_options=options, executable_path=r'C:\path\to\chromedriver.exe', desired_capabilities=caps)
    driver.get('http://www.doelabs.com/')
    print("Page Title is : %s" %driver.title)
    driver.quit()
    

  •  类似资料: