Web神器之Selenium
发表于 · 归类于
技术 · 阅读完需 4 分钟 ·
阅读量 报告错误
一、什么是Selenium
Selenium是一个用于Web应用程序自动化测试的工具集,它提供了多种编程语言(如Python、Java、C#等)的接口,使得开发者能够通过编写代码来模拟用户在浏览器中的操作。在Python环境中使用Selenium,就可以利用Python语言的简洁性和强大的库生态系统,实现高效的Web自动化任务。
Selenium在Python中的应用场景:
- 自动化测试:对Web应用程序的功能进行自动化测试,例如验证页面元素是否正确显示、表单提交是否成功、链接跳转是否正常等。通过编写测试脚本,可以快速且重复地执行这些测试,提高测试效率和准确性。
- 数据抓取:当网页数据是通过JavaScript动态加载时,传统的网页爬虫(如BeautifulSoup)可能无法直接获取到数据。Selenium可以模拟浏览器加载页面的过程,等待数据完全加载后再进行抓取,从而获取到完整的网页数据。
- 网页交互模拟:模拟用户在网页上的操作,如点击按钮、填写表单、滚动页面等。这在一些需要模拟用户行为的场景中非常有用,例如自动化注册流程、模拟登录操作等。
二、学习笔记
1. 基本使用:打开一个网页
from selenium import webdriver
from selenium.webdriver.common.by import By
# 初始化WebDriver
driver = webdriver.Chrome()
# 打开页面
driver.get('https://www.douyin.com/discover')
# 关闭浏览器
driver.quit()
2. 填充表单数据
# 找到用户名和密码输入框并输入信息
username_input = driver.find_element(By.ID,'userName')
password_input = driver.find_element(By.ID,'pwd')
# 向<input>元素写入数据,这里以“admin”为例
username_input.send_keys('admin')
password_input.send_keys('123456')
3. 点击事件
# 点击登录按钮:定位到<a>标签元素,这里假设登录链接的文本是“登录”
login_link = driver.find_element(By.CSS_SELECTOR, "a[class='link']")
login_link.click()
4. 获取Cookie
cookies = driver.get_cookies()
for cookie in cookies:
# 打印所有Cookie
print(cookie['name'], cookie['value'])
# 获取指定的Cookie
if cookie['name'] == "authorization_token":
s_token = cookie['value']
print("获取到的Token为:",s_token)
# 获取Cookie字符串
cookie = '; '.join([f"{cookie['name']}={cookie['value']}" for cookie in cookies])
5. 打开新网页
# 新建一个窗口(tab)
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
# 打开第一个网址
driver.get('http://www.gzwy.gov.cn/')
6. 页面刷新
三、案例
(1)正在编写中