随笔分类 - web自动化测试
python+selenium自动化测试介绍
摘要:PO模式 po其实就是封装的概念 优点:清晰稳定 页面发生变化的时候,只需要改变细节就好了,对外暴露接口其实是没有变的 六大原则: 1.公共方法应该对应页面提供的服务 2.不要暴露过多页面细节 3.断言不要放在pageobject中,混在一起写会引起混乱,页面改动的时候容易混乱;让断言去调封装的细节
阅读全文
摘要:1.定位了元素没有做下一步操作,比如,点击、输入等功能,而报错,报错信息如下: 2.上传图片时,定位元素,应该定位input标签,点击页面input标签肉眼没有看到定位到任何元素,以为无法成功,实际上只要有input标签被定位到是都可以上传图片的! 3.定义页面基础类时,初始化webdiver,传参
阅读全文
摘要:1.当可以定位到input标签的时候 2.当定位不到input标签的时候 可以使用selenium之外的方法,目前不知道是否是最优解,但是这种可以实现,实现方法代码如下: from pykeyboard import PyKeyboard def upload_picture(self, file)
阅读全文
摘要:1.使用selenium直接在当前页面中进行js交互 JS的处理 2.常用几种操作使用js实现 js'代码、如何调用js(使用execute_script()),如何返回? document.title:获取页面标题 window.alert("hello hi”):获取一个页面弹窗 JSON.st
阅读全文
摘要:问题: 1.针对多窗口切换处理 1)点击某些链接,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口了。 2)获取窗口的唯一标识用句柄表示,所以只需要切换句柄,就可以在多个页面灵活操作了。 多窗口处理流程 1)先获取到当前的窗口句柄(self.driver.current_windo
阅读全文
摘要:1.多浏览器处理目的: 创建一个 Base类,来存放公共的方法,比如浏览器的选择 2.那如何支持多平台运行? 封装浏览器引擎,根据操作系统(linux、Mac系统、windows系统),判断driver的路径
阅读全文
摘要:1.TouchAction 类似于ActionChains,但是ActionChains只针对PC端程序程序模拟一系列操作,对H5页面操作无效,而TouchAction可以! 完成滑动的时候给它一个尽量比较大的坐标值 2. 表单操作
阅读全文
摘要:我们以企业微信为例,进行实战 1.首页pageObject 1)立即注册 点击立即注册 return立即注册pageObject 2)企业登陆 点击企业登陆 return企业登陆pageObject 2.登陆pageObject 1)扫码 用手机扫描二维码 2)立即注册 点击立即注册 return
阅读全文
摘要:1.什么是po模式 举个例子:有一页面,想要将a元素改成b元素, 如果页面元素变了,那么断言也要跟着变的话,就要改两处代码,操作非常令人困扰,传统设计模式下如下图: ——> 我们将案例抽象化,就是po模式: po模式的核心: 1)对外只提供方法,不提供操作细节,当页面元素变动的时候只需要改变操作细节
阅读全文
摘要:1.这里需要设置一下环境变量 环境变量地址一般是在/Applications/Google Chrome.app/Contents/MacOS路径下,如下图所示: 2.经该路径添加至环境变量:vi ~/.bash_profile export PATH=/Applications/Google\ C
阅读全文
摘要:常用的操作事件:右键点击、页面滑动、表单操作 官方文档 https://selenium-python.readthedocs.io/ 我们定位元素的时候也可以使用这个方法去定位元素: 主要两个操作方法 1.ActionChains 注意,⚠️不会立即执行,调用perform()方法时,队列中事件依
阅读全文
摘要:Web控件定位与常见操作: xpath css selenium的点击与输入:click()、send_keys() 1.xpath 缺点:速度慢,因为它是从头到尾一点点遍历到的 优点:万能定位方式 1) /代表子元素,相当于上一个元素的儿子; 可以定位到它的孩子,但是定位不到它的孙子; 比如:$x
阅读全文
摘要:1.测试用例编写 用例的关键要素: 1)导入依赖 2)创建driver 3)执行自动化步骤 4)断言 如下图是一个简单的demo: self.driver.maximize_window()最大化窗口页面,一般会存在于setup方法中 如果不添加teardown原来跑完的页面不会进行自动退出的,原页
阅读全文
摘要:持续更新。。。 1.括号中的文案写错,比如社团写成社区,最好还是在html页面里定位到元素去粘贴上面的文案,哪怕只有两个字❗️ self.driver.find_element_by_link_text("社团").click() 2.使用隐式等待,直接报错,因为隐式等待这判断这个元素有了,但不会判
阅读全文
摘要:selenium的简介 selenium的安装 Driver的配置 1.selenium介绍 selenium支持web浏览器的自动化。它主要由三个工具构成:WebDriver、IDE、Grid 官方网站:https://www.selenium.dev/ Grid是分布式,支持在多个浏览器中操作,
阅读全文
浙公网安备 33010602011771号