代码之家  ›  专栏  ›  技术社区  ›  Austin Ju

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

  •  1
  • Austin Ju  · 技术社区  · 6 年前

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

     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 回复  |  直到 6 年前
        1
  •  0
  •   undetected Selenium    6 年前

    关于解决方案的几句话:

    • 电子邮件 是一个 保留字,保留字 / 关键字 在里面 Python语言 ,避免使用该词 电子邮件 在用户定义的文件名/方法/类中。
    • pageLoadStrategy eager 尚未在中实施 镀铬驱动器 ,使用 none normal 而是根据您的要求。
    • 最大化 Chrome浏览器窗口 而不是 maximize_window() 使用参数 开始最大化 通过 ChromeOptions()
    • 要加载扩展,请使用 色度选项 具体如下:

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

    以下是四种初始化方法 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()
      
    • 参数为 色度选项 :

      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()
      
    • 参数为 色度选项 和功能 所需能力 :

      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()
      
        2
  •  0
  •   Pang firemonkey    6 年前

    你可能想改变

    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,可执行文件的扩展名。