在尝试了解有关 Python 的更多信息时,我尝试编写一个程序,当给定链接时,该程序会在网络上执行操作。我正在使用 selenium 模块,并从中使用 webdriver。当前的代码如下所示:
from selenium import webdriver
def supremeTest():
browser = webdriver.Firefox()
browser.get('http://www.google.com')
linkElem = browser.find_element_by_name("q")
type(linkElem)
linkElem.click()
但是,问题在于,当我将 webdriver.Firefox()
更改为 .Chrome()
时,程序会打开一个 Chrome 页面,然后在执行任何操作之前退出已完成。
我想知道为什么会这样,我使用的是 python3,并且我确实有最新版本的 ChromeDriver。我查看了 ChromeDriver 的帮助部分,但从我所查看的内容来看,那里没有任何帮助。
最佳答案
这是因为selenium默认为firefox提供驱动程序,但不为chrome提供驱动程序。如果你看看方法调用,firefox 可以用 0 个参数调用。
webdriver.Firefox()
但不是 chrome 方法,它将接受一个名为executable_path 的参数
webdriver.Chrome(executable_path='<path>')
因此,要从 selenium 运行 chrome,您需要从 here 下载 chrome webdriver 。并将文件路径保留在 中,这样就可以正常工作。由于您已经下载了网络驱动程序,因此请在 chrome() 方法调用中指定路径。就像这样
path_to_chromedriver = 'C:/python34/chromedriver/chromedriver.exe'
browser2 = webdriver.Chrome(executable_path = path_to_chromedriver)
希望有帮助。
关于python - ChromeDriver 意外退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37130841/