您的位置:首页 > 编程语言 > Python开发

Selenium 3.x如何启动3种浏览器(Chrome/Firefox/IE)

2017-11-09 19:53 591 查看

博文章节

博文章节
本机环境介绍

Selenium 3x对于Chrome启动的改变

Selenium 3x对于Firefox启动的改变

Selenium 3x对于IE启动的改变

拓展延伸

本机环境介绍

编码语言(Python)

(py3env) C:\Users\XXX\iCloudDrive\PycharmProjects\SAT>python -V
Python 3.6.2


Selenium版本(3.7.0)

(py3env) C:\Users\XXX\iCloudDrive\PycharmProjects\SAT>pip show selenium
Name: selenium
Version: 3.7.0
Summary: Python bindings for Selenium


Selenium 3.x对于Chrome启动的改变

from selenium import webdriver

if __name__ == '__main__':
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
print(driver.title())


如果使用以上代码,将会有如下报错信息:

Traceback (most recent call last):
File "C:/Users/XXX/iCloudDrive/PycharmProjects/SAT/sat/browsers/chrome_launcher.py", line 4, in <module>
driver = webdriver.Chrome()
File "C:\Virtualenv\py3env\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__
self.service.start()
File "C:\Virtualenv\py3env\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home[/code] 
提示
chromedriver
没有加入到环境变量
PATH
中,
chromedriver
下载地址,注意下载与自己浏览器相匹配版本的chromedriver。修改代码如下:

from selenium import webdriver

if __name__ == '__main__':
chrome_driver_path = "C:\\Users/XXX\\iCloudDrive\\PycharmProjects\\SAT\\sat\\resource\\chromedriver.exe"
driver = webdriver.Chrome(chrome_driver_path)
driver.get("https://www.baidu.com/")
print(driver.title)
driver.quit()


Selenium 3.x对于Firefox启动的改变

from selenium import webdriver

if __name__ == '__main__':
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
print(driver.title)
driver.quit()


如果使用以上代码,将会有如下报错信息:

Traceback (most recent call last):
File "C:/Users/XXX/iCloudDrive/PycharmProjects/SAT/sat/browsers/firefox_launcher.py", line 4, in <module>
driver = webdriver.Firefox()
File "C:\Virtualenv\py3env\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 144, in __init__
self.service.start()
File "C:\Virtualenv\py3env\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.


提示
geckodriver
没有加入到环境变量
PATH
中,
geckodriver
下载地址,注意下载与自己浏览器相匹配版本的geckodriver。修改代码如下:

from selenium import webdriver

if __name__ == '__main__':
firefox_driver_path = "C:\\Users/XXX\\iCloudDrive\\PycharmProjects\\SAT\\sat\\resource\\geckodriver.exe"
driver = webdriver.Firefox(executable_path=firefox_driver_path)
driver.get("https://www.baidu.com/")
print(driver.title)
driver.quit()


如果以上代码提示
Unable to find a matching set of capabilities
错误,检查Firefox版本与geckodriver版本的匹配即可

Selenium 3.x对于IE启动的改变

from selenium import webdriver

if __name__ == '__main__':
driver = webdriver.Ie()
driver.get("https://www.baidu.com/")
print(driver.title)
driver.quit()


如果使用以上代码,将会有如下报错信息:

Traceback (most recent call last):
File "C:/Users/XXX/iCloudDrive/PycharmProjects/SAT/sat/browsers/firefox_launcher.py", line 5, in <module>
driver = webdriver.Firefox(executable_path=chrome_driver_path)
File "C:\Virtualenv\py3env\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 154, in __init__
keep_alive=True)
File "C:\Virtualenv\py3env\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 151, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Virtualenv\py3env\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 240, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Virtualenv\py3env\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 308, in execute
self.error_handler.check_response(response)
File "C:\Virtualenv\py3env\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities


提示
Unable to find a matching set of capabilities
,通过Google发现自Selenium3.0开始IE启动需要加载
IEDriverServer.exe
InternetExplorerDriver介绍下载地址。修改代码如下:

from selenium import webdriver

if __name__ == '__main__':
ie_driver_path = "C:\\Users/XXX\\iCloudDrive\\PycharmProjects\\SAT\\sat\\resource\\IEDriverServer.exe"
driver = webdriver.Ie(executable_path=ie_driver_path)
driver.get("https://www.baidu.com/")
print(driver.title)
driver.quit()


拓展延伸

python selenium 3.7 API Docs 官方地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息