chromedriver_py自动维护Webdriver
一、背景
由于Selenium的运行需要浏览器的配合,而驱动浏览器需要对应浏览器版本的驱动webdriver,但如何维护这些webdirver就比较麻烦,原因如下:
1)计算机上可能根本就没有安装Chrome。
2)对于不同的操作系统,Chrome的安装路径不一样。
3)即使是相同的操作系统,Chrome的安装路径也可能不一样,因为安装路径是用户可配置的。
4)即使计算机上安装了Chrome,版本也可能跟Web Driver的版本不一致,导致代码不能运行
from selenium import webdriver
browser = webdriver.Chrome(executable_path=chrome_dirver_filepath)
为了解决这个问题,我们可以安装一个辅助模块,名为chromedriver_py,它会根据相应的操作系统安装对应的Chrome版本,并且自动维护相应的可执行文件路径。
pip install chromedriver_py
二、实践
安装好第三方插件后,我们就可以很方便的调用webdriver,而不用再刻意去维护webdriver的版本及路径问题。
import time
from selenium import webdriver
from chromedriver_py import binary_path as chrome_driver_path
class TestWebdriver:
def setup(self):
self.driver = webdriver.Chrome(executable_path=chrome_driver_path)
self.driver.maximize_window()
self.driver.get("http://www.baidu.com")
def teardown(self):
time.sleep(3)
self.driver.quit()
def test_baidu_search(self):
self.driver.find_element_by_id('kw').send_keys("pytest")
self.driver.find_element_by_id('su').click()