| |
|
开发:
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 22:30:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |