一、selenium的介绍
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器。
因为Selenium可以控制浏览器发送请求,并获取网页数据,因此可以应用于爬虫领域。
Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。
Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。
selenium的缺点也很明显:
- 速度太慢
- 对版本配置要求严苛
- 最麻烦是经常要更新对应的驱动
官方文档:http://selenium-python.readthedocs.io/index.html
二、selenium的安装
Web自动化是指使用自动化工具或脚本来模拟用户在网页上的操作,以执行各种任务,例如测试网站功能、抓取数据、自动填写表单等。Selenium是一个流行的用于Web自动化的工具,它支持多种浏览器,并提供了多种编程语言的接口,如Python、Java、C#等。
以下是Web自动化的一般步骤:
1. 安装Selenium
首先,需要安装Selenium库。在Python中,您可以使用pip来安装Selenium:
pip install selenium
或者
在pycharm中添加
2. 下载浏览器驱动
Selenium需要浏览器驱动来控制浏览器。您需要下载相应浏览器的驱动,如Chrome Driver、Firefox Driver等,并确保驱动版本与您的浏览器版本匹配。
查看浏览器版本,下载对应驱动,相关驱动的下载链接如下
Chrome驱动:Chrome for Testing availability (googlechromelabs.github.io)
Firefox驱动:Release - geckodriver - GitCode
Edge驱动:Microsoft Edge WebDriver | Microsoft Edge Developer
3. 创建WebDriver实例
使用Selenium,您需要创建一个WebDriver实例,这将是您控制浏览器的接口。
from selenium import webdriver
# 创建一个Chrome浏览器实例
driver = webdriver.Chrome()
4. 打开网页
使用WebDriver实例的get
方法打开网页:
driver.get('https://www.example.com')
5. 查找元素并操作
您可以使用各种方法来查找页面元素,如ID、类名、标签名等,然后模拟用户操作,比如点击按钮、填写表单等。
element = driver.find_element_by_id('element_id')
element.click()
6. 执行其他操作
您可以执行其他操作,如等待页面加载、切换窗口、处理弹窗等。
from selenium import webdriver
# 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.by import By
# 键盘按键操作
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
# 等待页面加载某些元素
from selenium.webdriver.support.wait import WebDriverWait
# 老版本写法:executable_path : 可以指定驱动位置 (新版本已经不用了)
# chrome = webdriver.Chrome(executable_path='./chromedriver.exe')
# 也可以将驱动加到环境变量中,自动检索驱动位置
chrome = webdriver.Chrome()
try:
# 自动打开浏览器,请求目标网址
chrome.get('https://www.jd.com')
# 找到搜索框对应的标签
# input_tag = chrome.find_element(By.ID, 'key')
input_tag = chrome.find_element(value="key")
# 自动传入关键字
input_tag.send_keys('hellokitty')
# 自动回车(搜索)
# 也可以找到搜索标签 btn.click
input_tag.send_keys(Keys.ENTER)
wait = WebDriverWait(chrome, 10)
# time.sleep(3)
# 等到id为J_goodsList的元素加载完毕,最多等10秒
wait.until(EC.presence_of_element_located((By.ID, 'J_goodsList')))
chrome.save_screenshot("hellokitty.png")
finally:
# 关闭浏览器页面
chrome.close()
7. 关闭浏览器
完成自动化任务后,记得关闭WebDriver实例:
driver.quit()
或者
# 关闭浏览器页面
chrome.close()
8、补充
新版本如何指定驱动位置
from selenium.webdriver.chrome.service import Service
executable_path = '浏览器驱动路径'
service = Service(executable_path=executable_path)
driver = webdriver.Chrome(service=service)
标签:webdriver,浏览器,框架,chrome,Selenium,selenium,驱动,安装
From: https://www.cnblogs.com/xiao01/p/18115633