那个网站有兼职做室内设计,绵阳做网站的有哪些,wordpress图片翻页,网络营销推广服务1、selenium工作流程2、selenium工作原理(1)客户端和服务端之间实际是通过http协议进行通信#xff0c;服务端的接口文档可参考#xff1a;https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidelement(2)客户端按照服务端接口要求传入请求方式、…1、selenium工作流程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访问驱动程序通过execute方法构建“创建新会话”接口的请求信息并发送http请求返回会话id请求方式POST请求地址http://localhost:post/session请求数据data {desiredCapabilities:{browserName: chrome,version:85.0.4183.83,platform:WINDOWS}} ② driver.get(http://www.baidu.com)通过execute方法按get命令的接口信息构建http请求信息并发送http请求请求方式POST请求地址http://localhost:post/session/$sessionId/url(sessionId为会话id从①中获取)请求数据{url: http://www.baidu.com} ③ driver.find_element_by_id(kw)通过execute方法按find_element_by_id命令的接口信息构建http请求信息并发送http请求请求方式POST请求地址http://localhost:post/session/$sessionId/element(sessionId为会话id从①中获取)请求数据{using:id,value:kw} ④ ele.send_keys(selenium)通过execute方法按send_keys命令的接口信息构建http请求信息并发送http请求请求方式POST请求地址http://localhost:post/session/$sessionId/element/$id/value(sessionId为会话id从①中获取id为元素id从③获取)请求数据{value: [selenium]} ⑤ ele.click()通过execute方法按click命令的接口信息构建http请求信息并发送http请求请求方式POST请求地址http://localhost:post/session/$sessionId/element/$id/click(sessionId为会话id从①中获取id为元素id从③获取)请求数据无 4、通过requests模块实操验证selenium实现原理(1)代码实现1 1 # TODO 访问域名2 2 base_url http://localhost:95153 34 4 # TODO 创建会话5 5 url base_url /session6 6 data {7 7 desiredCapabilities:{8 8 browserName: chrome,9 9 version:85.0.4183.83,10 10 platform:WINDOWS11 11 }12 12 }13 13 res request(POST,url,jsondata)14 14 session_id res.json()[sessionId] # 返回会话id15 1516 16 sleep(2)17 1718 18 # TODO 发送get命令 - 访问某个网站19 19 url base_url /session/{}/url.format(session_id)20 20 data {21 21 url: http://www.baidu.com22 22 }23 23 res request(POST,url,jsondata)24 2425 25 # TODO 发送find_element命令 - 查找元素26 26 url base_url /session/{}/element.format(session_id)27 27 data {28 28 using:id,29 29 value:kw30 30 }31 31 res request(POST,url,jsondata)32 32 ele jsonpath(res.json(),$..ELEMENT)[0] # 返回元素id33 3334 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,jsondata)40 4041 41 # TODO 发送find_element命令 - 查找元素42 42 url base_url /session/{}/element.format(session_id)43 43 data {44 44 using:id,45 45 value:su46 46 }47 47 res request(POST,url,jsondata)48 48 ele jsonpath(res.json(),$..ELEMENT)[0] # 返回元素id49 4950 50 # TODO 发送click命令 - 元素点击51 51 url base_url /session/{}/element/{}/click.format(session_id,ele)52 52 res request(POST,url)(2)运行结果 来源https://www.icode9.com/content-1-736251.html