从python角度解析selenium原理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从python角度解析selenium原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4294字,纯文字阅读大概需要7分钟。
内容图文
![从python角度解析selenium原理](/upload/InfoBanner/zyjiaocheng/625/22f0f42d0bb24e5aac56832b68681a23.jpg)
1、selenium工作流程
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043806393.jpg)
2、selenium工作原理
(1)客户端和服务端之间实际是通过http协议进行通信,服务端的接口文档可参考: ???????? https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidelement (2)客户端按照服务端接口要求传入请求方式、请求url和请求数据,然后发送http请求,服务端收到请求后驱动浏览器执行命令; (3)selenium实际已封装好各种操作接口的请求函数,用户只需通过指定的方法传入数据即可, ???????? 如get、click、find_element实际都是封装了整个http请求过程的方法; ? 即测试人员仅需根据功能需求调用对应的方法并传参即可,最终由selenium组装请求信息后发送请求; (4)可见,完全可以跳过selenium,自己通过requests模块构建请求信息发送给驱动程序,从而驱动浏览器执行相关操作。3、从selenium源码角度剖析selenium原理
(1)先说明一下
以下例子,以python、chrome驱动程序、chrome浏览器展开说明。(2)通过selenium实现工作流
1 1 # 启动chrome浏览器 2 2 driver = webdriver.Chrome() 3 3 # 访问百度网站 4 4 driver.get("http://www.baidu.com") 5 5 # 查找输入框元素 6 6 ele = driver.find_element_by_id("kw") 7 7 # 在输入框中输入“selenium” 8 8 ele.send_keys("selenium") 9 9 # 查找百度一下按钮 10 10 ele = driver.find_element_by_id("su") 11 11 # 点击百度一下按钮 12 12 ele.click()
(3)selenium源码解析
① driver = webdriver.Chrome() 启动chromedriver驱动程序,启动后可通过http://ip:port访问驱动程序![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043806961.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043807428.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043807908.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043808656.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043809163.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043809547.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043810052.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043810679.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043811315.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043811905.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043812391.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043812735.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043813272.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043813621.jpg)
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043814066.jpg)
4、通过requests模块实操验证selenium实现原理
(1)代码实现
1 1 # TODO 访问域名 2 2 base_url = "http://localhost:9515" 3 3 4 4 # TODO 创建会话 5 5 url = base_url + "/session" 6 6 data = { 7 7 "desiredCapabilities":{ 8 8 "browserName": "chrome", 9 9 "version":"85.0.4183.83", 10 10 "platform":"WINDOWS" 11 11 } 12 12 } 13 13 res = request("POST",url,json=data) 14 14 session_id = res.json()["sessionId"] # 返回会话id 15 15 16 16 sleep(2) 17 17 18 18 # TODO 发送get命令 - 访问某个网站 19 19 url = base_url + "/session/{}/url".format(session_id) 20 20 data = { 21 21 "url": "http://www.baidu.com" 22 22 } 23 23 res = request("POST",url,json=data) 24 24 25 25 # TODO 发送find_element命令 - 查找元素 26 26 url = base_url + "/session/{}/element".format(session_id) 27 27 data = { 28 28 "using":"id", 29 29 "value":"kw" 30 30 } 31 31 res = request("POST",url,json=data) 32 32 ele = jsonpath(res.json(),"$..ELEMENT")[0] # 返回元素id 33 33 34 34 # TODO 发送send_keys命令 - 输入内容 35 35 url = base_url + "/session/{}/element/{}/value".format(session_id,ele) 36 36 data = { 37 37 "value": ["selenium"] 38 38 } 39 39 res = request("POST",url,json=data) 40 40 41 41 # TODO 发送find_element命令 - 查找元素 42 42 url = base_url + "/session/{}/element".format(session_id) 43 43 data = { 44 44 "using":"id", 45 45 "value":"su" 46 46 } 47 47 res = request("POST",url,json=data) 48 48 ele = jsonpath(res.json(),"$..ELEMENT")[0] # 返回元素id 49 49 50 50 # TODO 发送click命令 - 元素点击 51 51 url = base_url + "/session/{}/element/{}/click".format(session_id,ele) 52 52 res = request("POST",url)
(2)运行结果
![从python角度解析selenium原理 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501043814718.jpg)
内容总结
以上是互联网集市为您收集整理的从python角度解析selenium原理全部内容,希望文章能够帮你解决从python角度解析selenium原理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。