全网最全Python库selenium自动化使用详细教程
什么是selenium?
Selenium是一款自动化测试工具,支持多种浏览器,包括Chrome,Firefox,Safari等。通过Selenium,可以自动化测试网站的功能,包括单击、输入文本等常见的测试操作。Selenium通过WebDriver控制浏览器,并提供一系列API,方便用户进行自动化测试。
如何安装selenium?
1. 安装selenium库
在Python环境下,使用pip命令可以很方便地安装selenium库。在命令行中输入以下命令:
pip install selenium
2. 下载浏览器的WebDriver
由于Selenium通过WebDriver控制浏览器,因此需要下载浏览器的WebDriver,并添加到系统的PATH环境变量中。WebDriver的下载地址如下:
- Chrome:https://sites.google.com/a/chromium.org/chromedriver/
- Firefox:https://github.com/mozilla/geckodriver/releases
- Safari:http://webkit.org/blog/6900/webdriver-support-in-safari-10/
我们以Chrome浏览器为例。下载对应版本的ChromeDriver后,将其解压到任意目录下,并将解压后的文件所在的目录添加到系统的PATH环境变量中。
实例如下:
$ unzip chromedriver_linux64.zip
$ mv chromedriver /usr/local/bin
$ export PATH=$PATH:/usr/local/bin
如何使用selenium?
使用selenium的步骤如下:
1. 初始化webdriver
在使用selenium时,需要选择一个浏览器,并根据浏览器类型初始化webdriver。以Chrome浏览器为例,初始化代码如下:
from selenium import webdriver
browser = webdriver.Chrome()
2. 打开网页
在成功初始化webdriver后,接下来就可以使用webdriver打开网页了。以百度为例,代码如下:
browser.get('https://www.baidu.com')
3. 获取页面元素
在打开网页后,webdriver提供了一系列API,用于获取页面元素。以下是一些常用的API:
- find_element_by_id:根据id查找单个元素
- find_element_by_name:根据name查找单个元素
- find_element_by_xpath:根据xpath表达式查找单个元素
- find_element_by_css_selector:根据CSS选择器查找单个元素
- find_elements_by_id:根据id查找多个元素
- find_elements_by_name:根据name查找多个元素
- find_elements_by_xpath:根据xpath表达式查找多个元素
- find_elements_by_css_selector:根据CSS选择器查找多个元素
以查找百度搜索框为例,代码如下:
from selenium.webdriver.common.by import By
input_element = browser.find_element(By.ID, 'kw')
4. 操作页面元素
在获取页面元素后,可以使用元素提供的API进行操作,例如在搜索框中输入关键字:
input_element.send_keys('selenium')
5. 执行操作
在完成操作后,可以使用webdriver的API执行一些其他操作,例如单击一个元素:
button = browser.find_element(By.ID, 'su')
button.click()
6. 关闭webdriver
在所有操作完成后,需要关闭webdriver:
browser.quit()
示例说明
以下是两个示例,分别用selenium自动化完成百度搜索和淘宝商品信息抓取:
示例一:百度搜索
from selenium import webdriver
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
input_element = browser.find_element(By.ID, 'kw')
input_element.send_keys('selenium')
button = browser.find_element(By.ID, 'su')
button.click()
browser.quit()
示例二:淘宝商品信息抓取
from selenium import webdriver
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input_element = browser.find_element(By.NAME, 'q')
input_element.send_keys('手机')
button = browser.find_element(By.CLASS_NAME, 'btn-search')
button.click()
items = browser.find_elements(By.CLASS_NAME, 'J_MouserOnverReq')
for item in items:
price = item.find_element(By.CSS_SELECTOR, '.price').text
title = item.find_element(By.CSS_SELECTOR, '.title').text
print(title, price)
browser.quit()
以上示例仅为演示,实际应用时可能需要根据页面结构和需求进行调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:全网最全python库selenium自动化使用详细教程 - Python技术站