当前位置: 首页 > wzjs >正文

html5 网站开发定制销售手机网站

html5 网站开发定制,销售手机网站,郑州经济技术开发区官网,佛山快速建站哪家服务专业Selenium底层原理 3天精通Postman接口测试,全套项目实战教程!!运行代码,启动浏览器后,webdriver会将浏览器绑定到特定的端口,作为webdriver的remote server(远程服务端),…

Selenium底层原理

3天精通Postman接口测试,全套项目实战教程!!

运行代码,启动浏览器后,webdriver会将浏览器绑定到特定的端口,作为webdriver的remote server(远程服务端),而client(客户端,也就是测试脚本,可以是Python或者Java代码)会借助CommandExecutor创建sessionId,发送http请求给remote server,remote server收到http请求后,调用webdriver完成操作,并将http响应结果返回给client。

所以,本质上是调用http请求的过程,因此也就可以理解为什么可以使用Postman实现UI自动化测试。

Postman实现UI自动化测试

以上我们知道了Selenium的底层原理其实就是调用http请求的过程,那么我们要想调用接口就需要知道接口信息,包括请求方式、请求地址、请求参数、请求格式等。

这些接口信息,我们可以通过对源码的分析得到。

运行chromedriver.exe

Selenium脚本:

from selenium import webdriver
driver = webdriver.Chrome()

执行上述代码,程序会打开Chrome浏览器。(前提:已经正确配置了Chrome驱动和对应的版本)

那么,Selenium是如何实现这一过程的呢?

源码分析:

D:\Python3\Lib\site-packages\selenium\webdriver\chrome\webdriver.py

我们可以看到它执行了一个cmd命令,这个命令主要是启动chromedriver.exe浏览器驱动,我们每次执行脚本前,程序会自动帮我们启动浏览器驱动。

由于我们跳过了代码脚本,因此需要手动启动浏览器驱动。

地址及端口号:127.0.0.1:9515

新建浏览器会话

D:\Python3\Lib\site-packages\selenium\webdriver\remote\webdriver.py

继续查看源码,这里有一行重要的代码:

start_session()这个方法是向地址http://127.0.0.1:9515/session发送了一个post请求,参数是JSON格式,然后返回一个特定的响应信息给程序,主要就是新建了一个sessionId。

接口信息:

url: /session
method: POST
content_type: application/json

请求参数:

{"capabilities": {"browserName": "chrome"}
}

调用接口:

访问目标网站

Selenium脚本:

driver.get("https://www.baidu.com")

执行以上代码,可以访问目标网站。

源码分析:

D:\Python3\Lib\site-packages\selenium\webdriver\remote\remote_connection.py

在RemoteConnection这个类中,定义了所有selenium操作需要的接口地址(这些接口地址全部封装在浏览器驱动程序中)。

其中Command.GET: ("POST", "/session/$sessionId/url")这个地址就是实现访问一个网站的URL。

紧接着,可以看到主要是通过execute()方法调用_request()方法通过urllib3标准库向服务器发送对应操作请求地址,进而实现浏览器各种操作。

打开浏览器操作浏览器实现各种动作是通过上一步新建浏览器会话返回的sessionId实现的关联。你也会发现后面操作的各种接口地址中都存在一个$sessionId,以达到能够在同一个浏览器中做操作。

接口信息:

url: /session/$sessionId/url
method: POST
content_type: application/json

请求参数:

{"url": "目标网站地址"
}

调用接口:

窗口最大化

Selenium脚本:

driver.maximize_window()

源码分析:

接口信息:

url: /session/$sessionId/window/maximize
method: POST
content_type: application/json

调用接口:

元素定位

Selenium脚本:

driver.find_element(By.XPATH, "//input[@id='kw']")

源码分析:

接口信息:

url: /session/$sessionId/element
method: POST
content_type: application/json

请求参数:

{"using": "xpath", // 定位方式"value": "//input[@id='kw']" // 值
}

接口调用:

输入文本

Selenium脚本:

driver.find_element(By.XPATH, '//input[@type="text"]').send_keys("测试蔡坨坨")

源码分析:

接口信息:

url: /session/$sessionId/element/$id/value
method: POST
content_type: application/json

请求参数:

{"text": "测试蔡坨坨"
}

接口调用:

点击元素

Selenium脚本:

driver.find_element(By.XPATH, "//input[@id='su']").click()

源码分析:

接口信息:

url: /session/$sessionId/element/$id/click
method: POST
content_type: application/json

接口调用:

关闭浏览器

Selenium脚本:

driver.quit()

源码分析:

接口信息:

url: /session/$sessionId
method: DELETE
content_type: application/json

接口调用:

http://www.dtcms.com/wzjs/722313.html

相关文章:

  • 给公司做个网站多少钱四川省城乡和住房建设厅网站
  • 网站已改版网站推广软文代发
  • 基于html5的旅游网站的设计优秀国内个人网站网址
  • 住房和城建设网站wordpress修改访问量
  • 做啥网站桥头网站建设
  • 网站开发一般要哪些开发工具国家企业信息信用信息公示网山东
  • 如何创建一个自己公司网站房子装修设计图片大全
  • 传统媒体网站建设响应式网站 框架
  • 赣州门户网站外贸跨境电商平台有哪些
  • 做网站滨州市公司做网站的费用记什么科目
  • 网站开发企业标准电子网站模板
  • 企业网站建设公司注意哪些问题综合搜索引擎
  • 二级学院网站建设自评报告网站怎么做关键词研究
  • 英文建站网站手机非法网站怎么解决方案
  • 沧州网站的公众号织梦怎么关闭网站
  • 阅读网站模板做网站要用那些软件
  • .net 接单网站世界政务网站绩效评估指标体系建设
  • 东莞有什么比较好的网站公司天长企业网站制作
  • 网站猜你喜欢代码请人用wordpress建站假期
  • 网站建设 部署与发布视频教程电子商务网站建设课
  • 网站seo设置wordpress添加标签
  • 渭南建站设计上海2023展会时间
  • 网站建设大神级公司免费下载ppt模板网站推荐
  • 食品行业网站建设方案怎么在网站上做360全景图片
  • 官网站内推广内容室内设计公司和装修公司的区别
  • 无锡 网站 seo 优化哈尔滨巨耀网站建设
  • 网站做seo有什么作用怎么建网站
  • 自己网站建设的流程是什么建立企业营销网站主要包括哪些内容
  • 网站下载免费新版长沙竹叶网络科技有限公司
  • 网站建设是那个行业wordpress文章形式