| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 开发测试 -> Python中selenium的玩法,小朋友看了都说学会了 -> 正文阅读 |
|
|
[开发测试]Python中selenium的玩法,小朋友看了都说学会了 |
|
大家好,我是辣条。 目录 selenium的介绍1. selenium运行效果展示
chrome浏览器的运行效果
from selenium import webdriver
?
# 如果driver没有添加到了环境变量,则需要将driver的绝对路径赋值给executable_path参数
# driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')
?
# 如果driver添加了环境变量则不需要设置executable_path
driver = webdriver.Chrome()
?
# 向一个url发起请求
driver.get("http://www.itcast.cn/")
?
# 把网页保存为图片,69版本以上的谷歌浏览器将无法使用截图功能
# driver.save_screenshot("itcast.png")
?
print(driver.title) # 打印页面的标题
?
# 退出模拟浏览器
driver.quit() # 一定要退出!不退出会有残留进程!
phantomjs无界面浏览器的运行效果
from selenium import webdriver
?
# 指定driver的绝对路径
driver = webdriver.PhantomJS(executable_path='/home/worker/Desktop/driver/phantomjs')
# driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')
?
# 向一个url发起请求
driver.get("http://www.itcast.cn/")
?
# 把网页保存为图片
driver.save_screenshot("itcast.png")
?
# 退出模拟浏览器
driver.quit() # 一定要退出!不退出会有残留进程!
观察运行效果
无头浏览器与有头浏览器的使用场景
2. selenium的作用和工作原理
3. selenium的安装以及简单使用
在python虚拟环境中安装selenium模块
下载版本符合的webdriver 4. selenium的简单使用
import time
from selenium import webdriver
?
# 通过指定chromedriver的路径来实例化driver对象,chromedriver放在当前目录。
# driver = webdriver.Chrome(executable_path='./chromedriver')
# chromedriver已经添加环境变量
driver = webdriver.Chrome()
?
# 控制浏览器访问url地址
driver.get("https://www.baidu.com/")
?
# 在百度搜索框中搜索'python'
driver.find_element_by_id('kw').send_keys('python')
# 点击'百度搜索'
driver.find_element_by_id('su').click()
?
time.sleep(6)
# 退出浏览器
driver.quit()
selenium提取数据1. driver对象的常用属性和方法
2. driver对象定位标签元素获取标签对象的方法
find_element_by_id (返回一个元素) find_element(s)_by_class_name (根据类名获取元素列表) find_element(s)_by_name (根据标签的name属性值返回包含标签对象元素的列表) find_element(s)_by_xpath (返回一个包含元素的列表) find_element(s)_by_link_text (根据连接文本获取元素列表) find_element(s)_by_partial_link_text (根据链接包含的文本获取元素列表) find_element(s)_by_tag_name (根据标签名获取元素列表) find_element(s)_by_css_selector (根据css选择器来获取元素列表)
3. 标签对象提取文本内容和属性值
selenium的其它使用方法1. selenium标签页的切换
2. switch_to切换frame标签
3. selenium对cookie的处理
获取cookie
# 获取当前标签页的全部cookie信息
print(driver.get_cookies())
# 把cookie转化为字典
cookies_dict = {cookie[‘name’]: cookie[‘value’] for cookie in driver.get_cookies()}
删除cookie #删除一条cookie
driver.delete_cookie("CookieName")
?
# 删除所有的cookie
driver.delete_all_cookies()
4. selenium控制浏览器执行js代码
import time
from selenium import webdriver
?
driver = webdriver.Chrome()
driver.get("http://www.itcast.cn/")
time.sleep(1)
?
js = 'window.scrollTo(0,document.body.scrollHeight)' # js语句
driver.execute_script(js) # 执行js的方法
?
time.sleep(5)
driver.quit()
5. 页面等待
?页面等待的分类
强制等待(了解)
隐式等待
显式等待(了解)
手动实现页面等待
import time
from selenium import webdriver
driver = webdriver.Chrome('/home/worker/Desktop/driver/chromedriver')
driver.get('https://www.taobao.com/')
time.sleep(1)
# i = 0
# while True:
for i in range(10):
i += 1
try:
time.sleep(3)
element = driver.find_element_by_xpath('//div[@class="shop-inner"]/h3[1]/a')
print(element.get_attribute('href'))
break
except:
js = 'window.scrollTo(0, {})'.format(i*500) # js语句
driver.execute_script(js) # 执行js的方法
driver.quit()
6. selenium开启无界面模式
from selenium import webdriver
options = webdriver.ChromeOptions() # 创建一个配置对象
options.add_argument("--headless") # 开启无界面模式
options.add_argument("--disable-gpu") # 禁用gpu
# options.set_headles() # 无界面模式的另外一种开启方式
driver = webdriver.Chrome(chrome_options=options) # 实例化带有配置的driver对象
driver.get('http://www.itcast.cn')
print(driver.title)
driver.quit()
7. selenium使用代理ip
8. selenium替换user-agent
往期推荐: |
|
|
| 开发测试 最新文章 |
| pytest系列——allure之生成测试报告(Wind |
| 某大厂软件测试岗一面笔试题+二面问答题面试 |
| iperf 学习笔记 |
| 关于Python中使用selenium八大定位方法 |
| 【软件测试】为什么提升不了?8年测试总结再 |
| 软件测试复习 |
| PHP笔记-Smarty模板引擎的使用 |
| C++Test使用入门 |
| 【Java】单元测试 |
| Net core 3.x 获取客户端地址 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/5 17:18:28- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |