📅  最后修改于: 2023-12-03 14:47:22.341000             🧑  作者: Mango
Selenium是一个用于自动化浏览器的工具,它可以模拟用户在浏览器中的各种操作,如点击、输入、提交等,从而完成各种自动化测试、爬虫等操作。
Webdriver是Selenium的一个组件,它主要用于与浏览器交互,模拟用户在浏览器中的各种操作,并获取或修改浏览器的各种属性。
在使用Selenium进行自动化测试时,需要一个具体的浏览器驱动,Webdriver就是这个驱动。对于Chrome浏览器来说,可以使用ChromeDriver作为Webdriver。
要在Chrome中使用Selenium Webdriver,需要安装ChromeDriver。
首先需要在官网上下载ChromeDriver,地址为:http://chromedriver.chromium.org/downloads
在下载页面中选择与目标Chrome浏览器版本对应的ChromeDriver版本进行下载即可。
下载完成后,将下载的文件解压缩,得到一个可执行文件。
Linux用户可以将该文件复制到/usr/local/bin目录下,然后添加可执行权限:
sudo cp chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
Windows用户可以将该文件复制到一个目录下,例如D:\chromedriver,并将该目录添加到系统环境变量中。
为了使用Selenium Webdriver,在Python代码中引入selenium库,并创建一个WebDriver实例即可。
pip install selenium
from selenium import webdriver
# 创建Chrome浏览器的WebDriver实例
driver = webdriver.Chrome()
在创建WebDriver实例时,可以传入一些配置信息,如ChromeDriver的路径、Chrome浏览器的用户数据目录等。具体的配置项可以参考官方文档:https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.chrome.webdriver
# 打开百度首页
driver.get('https://www.baidu.com')
使用WebDriver的find_element_by_*方法可以查找网页中的元素,如:
# 根据id查找搜索框元素,并输入搜索关键词
search_box = driver.find_element_by_id('kw')
search_box.send_keys('Python')
# 根据class查找搜索按钮元素,并点击
search_button = driver.find_element_by_class_name('s_btn')
search_button.click()
更多查找方法可以参考官方文档:https://selenium-python.readthedocs.io/locating-elements.html
获取元素的各种属性可以使用WebElement的get_attribute方法,如:
# 获取搜索框的值
search_box_value = search_box.get_attribute('value')
print(search_box_value)
可以使用WebDriver的get_screenshot_as_file方法对浏览器窗口进行截屏,如:
# 截屏保存为baidu.png
driver.get_screenshot_as_file('baidu.png')
完成测试后,需要关闭WebDriver实例,以释放浏览器资源,如:
# 关闭浏览器窗口
driver.quit()
Selenium Webdriver是一个功能强大的浏览器自动化测试工具,通过ChromeDriver和Python的结合,可以方便地进行自动化测试和爬虫等操作。