IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> selenium模块的基本使用 -> 正文阅读

[开发测试]selenium模块的基本使用

selenium模块和爬虫的关联

1、便捷的获取网站中动态加载的数据。

2、便捷的实现模拟登录。


selenium模块:

1、基于浏览器自动化的一个模块。

2、模拟人去操作浏览器,通过xpath或者标签定位到元素,通过相应的方法就能在文本框内输入字符,或者定位到按钮点击。

3、不过selenium执行很慢,并且网页没加载完也可能执行下面的代码,会导致报错。

4、selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题,selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器。


selenium使用流程:

1、环境安装:pip install selenium

2、下载一个浏览器的驱动程序

  • 下载路径:http://chromedriver.storage.googleapis.com/index.html
  • 驱动程序和浏览器的映射关系:http://blog.csdn.net/huilan_same/article/details/51896672

3、实例化一个浏览器对象

4、编写基于浏览器自动化的操作代码

  • 发起请求:get(url)
  • 标签定位:find系列的方法
  • 标签交互:send_keys(‘xxx’)
  • 执行js程序:excute_script(‘jsCode’)
  • 前进、后退:back(), forward()
  • 关闭浏览器:quit()

5、selenium处理iframe

  • 如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id)
  • 动作链(拖动):from selenium.webdriver import ActionChains
    • 实例化一个动作链对象:action = ActionChains(bro)
    • click_and_hold(div) :长按且点击操作
    • move_by_offset(x,y)
    • perform()让动作链立即执行
    • action.release()释放动作链对象

通过软件自动化打开浏览器,爬取数据

导包

from lxml import etree
from time import sleep
from selenium import webdriver

实例化一个浏览器对象(传入浏览器的驱动成)

bro = webdriver.Chrome(executable_path='./chromedriver.exe')

让浏览器发起一个指定url对应的请求

bro.get('http://scxk.nmpa.gov.cn:81/xk/')

page_source获取浏览器当前页面的页面源码数据

page_text = bro.page_source

解析企业名称

tree = etree.HTML(page_text)
li_list = tree.xpath('//ul[@id="gzlist"]/li')
for li in li_list:
    name = li.xpath('./dl/@title')[0]
    print(name)

关闭浏览器(等待5秒)

sleep(5)
bro.quit()

导包

from selenium import webdriver
from time import sleep

导入动作链对应的类

from selenium.webdriver import ActionChains
bro = webdriver.Chrome(executable_path='./chromedriver.exe')

让浏览器发起一个指定url对应的请求

bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')

如果定位的标签是存在于iframe标签之中的则必须通过如下操作在进行标签定位

bro.switch_to_frame('iframeResult')  # 切换浏览器标签定位的作用域
div = bro.find_element_by_id('draggable')

动作链

action = ActionChains(bro)

点击长按指定的标签

action.click_and_hold(div)

perform()立即执行动作链操作、move_by_offset(x,y) : x水平方向 y竖直方向

for i in range(5):
    action.move_by_offset(17, 0).perform()
    sleep(0.5)

释放动作链

action.release()

关闭

bro.quit()

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 13:07:47  更:2021-10-04 13:07:53 
 
开发: 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/18 0:36:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码