【问题标题】:How to start Chrome Browser through Chromedriver and Selenium如何通过 Chromedriver 和 Selenium 启动 Chrome 浏览器
【发布时间】:2018-05-03 00:16:28
【问题描述】:

我突然遇到了 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 输入时,我没有收到任何错误。但是,当我导航到脚本所在的文件夹并加载 python 并从 selenium import webdriver 键入时,我收到上面显示的错误消息。我希望这可以让我对我目前的困境有所了解。

【问题讨论】:

    标签: python selenium selenium-webdriver webdriver selenium-chromedriver


    【解决方案1】:

    关于解决方案的几句话:

    • email保留字 / keywordPython 语言 中,避免使用字 email 在用户定义的文件名/方法/类中。
    • pageLoadStrategy 因为 eager 尚未在 ChromeDriver 中实现,请使用 nonenormal strong> 而是根据您的要求。
    • 要最大化 Chrome 浏览器窗口 而不是 maximize_window(),请使用参数 start-maximizedChromeOptions()
    • 要加载扩展,请使用 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()
      
    • 能力为DesiredCapabilities

      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()
      
    • Arguments as ChromeOptions and Capabilities as DesiredCapabilities :

      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()
      

    【讨论】:

    • 哇,感谢您的彻底回复!文件名为 email.py 绝对是我的问题。它也影响了我过去写的其他脚本,所以我非常困惑。感谢您调整我脚本的其他部分!
    【解决方案2】:

    你可能想改变

    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。

    【讨论】:

      猜你喜欢
      • 2019-03-20
      • 2019-03-13
      • 2018-11-15
      • 2011-11-17
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      相关资源
      最近更新 更多