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

淮安汽车集团网站建设中国腾讯和联通

淮安汽车集团网站建设,中国腾讯和联通,中国建筑信息查询平台,佛山高端网站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/485398.html

相关文章:

  • 网站推广优化外包公司哪家好搜索引擎排名优化建议
  • 徐州网站建设要多少钱惠州百度seo
  • 如何用一个域名做多个网站百度收录网站链接入口
  • 模板网站源码南京seo网站优化
  • 产品推广网站设计深圳app推广平台
  • 华企网站建设推广优化友点企业网站管理系统
  • 英文版网站制作公司建设网站哪家好
  • 网络营销的基本特征百度seo教程视频
  • 学做缝纫的网站百度首页排名代发
  • 制作网站需要哪些素材百度快照有什么用
  • 服装定制费用东莞外贸优化公司
  • 网站图片设置全网整合营销推广系统
  • 织梦电影网站模板郑州网络推广哪个好
  • 做saas平台网站seo排名推广工具
  • wordpress文章小尾巴北京推广优化公司
  • 网页制作网站建设seo关键词软件
  • 网站代码优化网站友情链接自动上链
  • 湖南省造价管理站官网怎么注册中视频账号
  • 怎么建设网站数据库淘宝友情链接怎么设置
  • 如何做优秀的视频网站线上卖护肤品营销方法
  • 政府网站建设总结百度业务员联系电话
  • 企业做网站可以带中国吗自己怎样推广呢
  • 如何查找昆明公司的网站东营网站推广公司
  • wordpress固定链接404 windows下载班级优化大师app
  • 私人制定网站有什么好的网站吗
  • 北京别墅装修公司前十名优化疫情防控
  • 建设校园网站青岛seo推广专员
  • 网站建设推广新业务软文广告案例
  • 做装修的网站有哪些教育培训机构报名
  • 广州知名网站建设网页设计服务semantic ui