一、webdriver的原理

driver = webdriver.Chrome()创建浏览器,当做我们的服务端,代码就是客户端,和客户端进行ip绑定,基于http协议发送post请求

WebDriver

webdriver是按照server – client的经典设计模式设计的。

webdriver的作用就是创建一个新的浏览器实例,也就是启动一个Server端。

(Starts the service and then creates new instance of chrome driver)

server端就是我们的Remote server,也就是我们通过各个不同浏览器所启动的浏览器实例,在我们脚本启动浏览器后,这个浏览器就可以称之为我们的Remote server,它的职责就是等待client发送请求并做出相应处理。

client 就是我们的测试代码,我们测试代码中的所有操作,比如打开浏览器,寻找元素,点击都是以http请求的方式发送给被测试浏览器,也就是我们的Remote server,remote server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息(这里调用的接口是浏览器的源生API,而每一个浏览器都有自己的一套接口信息,这也就是为什么我们要安装不同的驱动的原因)

WebDriver工作流程

1、通过WebDriver创建一个浏览器服务,remote server。

2、脚本启动时会在新的线程中启动一个浏览器,并绑定特定的端口,没个浏览器有不同的端口段。

3、client 创建1个session,在该session中通过http请求向remote server发送restful的请求,remote server解析请求,完成相应操作并返回response。

4、分析response,继续执行脚本还是结束执行

command.py

Command类中定义了WebDriver的一些常用的常量。

remote\webdrvier.py

所有浏览器webdrvier的基类,其中包含了所有webdriver的api接口

remote\remote_connection.py

包含启动Remote WebDrvier server,执行client请求,self._commands是selenium的核心请求参数,根据对应的Command常量,发送不同的http请求。

Page Object Model(POM)的优势
1.    POM提供了一种在UI层操作、业务流程与验证分离的模式,这使得测试代码变得更加清晰和高可读性
2.    对象库与用例分离,使得我们更好的复用对象,甚至能与不同的工具进行深度结合应用
3.    可复用的页面方法代码会变得更加优化
4.    更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。例如我们要回到首页,方法名命名为: gotoHomePage(),通过方法名即可清晰的知道具体的功能实

二、Selenium-WebDriverApi接口详解

18种定位方式:8种单数、8种复数、2种父类形式

(1)xpath定位方式

//*  取整个页面下的所有元素

转载于:https://www.cnblogs.com/zzzao/p/10165736.html

day15 webUI自动化相关推荐

  1. 自动化测试框架cucumber_基于Cucumber和Testng的WebUI自动化测试方法与流程

    本发明涉及计算机技术领域,具体的说是基于Cucumber和Testng的WebUI自动化测试方法. 背景技术: 行为驱动测试方法已经在敏捷开发模式中普遍使用,通过使用标准化的语言将客户需求人员.开发人 ...

  2. 搭建webUI自动化及问题解决:Message: ‘chromedriver‘ executable needs to be in PATH.解决办法

    搭建webUI自动化环境 1.conda install selenium即可. 若出现:Message: 'chromedriver' executable needs to be in PATH. ...

  3. Python+Selenium WebUI自动化框架 -- 实现特殊PO模型

    前言: 设计执行格式,封装PO模型工厂,实现PO模型脱离代码,一套代码执行所有项目的UI自动化,让UI自动化框架脱离高成本.低效率时代,将用例的重用性贯彻到极致,让烦人的PO模型变得无所谓,让一个测试 ...

  4. day15 Ui自动化元素的定位

    day15 元素的定位Ui自动化元素的定位1.火狐浏览器安装try xpath2.元素定位思路:(1)查看页面元素,确认能够唯一定位到元素的属性,比如id,文案3.学习xpath cssSelecto ...

  5. 浅谈Selenium之WebUI自动化

    一.自动化测试 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较.在此过 ...

  6. WebUI自动化框架 - 数据驱动(ddt、paramunittest)

    数据驱动 数据驱动测试时自动化测试中的主流设计模式之一,属于中级自动化测试工程师必备知识,必须深入掌握数据驱动测试的工作原理和实现方法 概述: 所谓数据驱动,时指相同的测试脚本使用不同的测试数据来执行 ...

  7. webUI自动化一元素定位

    实现功能:自动在百度输入框输入test,并进行搜索 from selenium import webdriver from time import sleepdriver = webdriver.Ch ...

  8. Python-Selenium WebUI自动化 Selenium-API整理(下)

    目录 一.前言 二.Selenium-API整理(下) 7.设置等待时间 8.定位frame中的元素 9.浏览器多窗口 10.alert/confirm/prompt 处理 11.下拉框处理 12.文 ...

  9. katalon studio录制WebUI自动化脚本

    1.在test case右击,新增文件夹或者用例 2.进入用例,然后action下record选择web录制(也可以用人家上放的快捷按钮录制) 3.点击录制后会跳出录制框,输入URl,选择你想使用的浏 ...

最新文章

  1. 借力大数据 物流迈向智能化
  2. python爬虫 小白轻松从0到1_如何从0到1,学习Python的流程【小白入门】
  3. 2018python培训-参加python培训要多少钱?
  4. 网站数据分析四:网站用户分析
  5. oracle数据库行争用,Oracle技术之数据库高回滚争用的问题
  6. 51nod 1847 奇怪的数学题(数论/min25筛/杜教筛/斯特林数)
  7. iPhone 12系列重新上架苹果天猫旗舰店,5499元的iPhone 12今晚开订!
  8. css3兼容性问题归纳
  9. cocos2dx 3.16 VS+BabeLua lua环境配置与代码调试
  10. 便签pc android同步,Windows/iPhone/Android多端同步便签软件
  11. try固定搭配_regret cease try等词的固定搭配用法
  12. 深度解读Swarm/BZZ项目的风险与创新
  13. Python脚本系列:拳皇13一键出招以及连段实现!谁打得过我?
  14. OCR识别数学公式图片,获得原始公式代码
  15. java筆試題,Java筆試題附答案 | 學步園
  16. 编程实现在Linux系统中Intel CPU功耗的获取
  17. Drools简单入门
  18. 北邮通信土著--非技术路线备忘录
  19. BeanCounter for Mac(财务记账软件)
  20. 初学python的体会心得-python学习心得:如何入门

热门文章

  1. 小程序 获取当前用户城市信息(省市区)
  2. linux下邮件查看命令
  3. 修改ant design vue中的Icon图标颜色
  4. javascript学习系列(24):数组中的substring方法
  5. 前端学习(3020):vue+element今日头条管理--创建路由和配置路由
  6. [html] 隐藏div内文字的方法有哪些?
  7. [html] 404页面有什么作用?
  8. 工作401-普通编译模式
  9. [vue] 为什么data属性必须声明为返回一个初始数据对应的函数呢?
  10. [css] 如何取消页面中选中的文字?