1. Browser

Chrome

关于Chrome的配置网上信息很多,直说一点,当选择在linux环境跑用例的时候,我们会优先选择headless run,默认情况下headless run的浏览器大小好像只有900*768,我们在windows下调通的用例在缩小的串口下经常会失败,最好调一下size:

chromeOptions.setHeadless(true);
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("window-size=1280,900");

Firefox

a. Chrome下能够跑过的用例在firefox下可能会fail,原因之一是Firefox对所有超出视窗的元素都是不可操作的,即使使用Action或者JS来操作也不可行,需要添加相应的ScrollIntoView (下面click会介绍具体用法)

b. Firefox对隐藏元素默认是不可操作的(例如上传文件标签),firefox 59之后添加了FirefoxCapability moz:wedriverClick用于操作隐藏元素: firefoxOptions.setCapability("moz:webdriverClick",false); //点击隐藏元素,如上传文件

2. 关于Click

- Element.click

driver.findElement(By.css).click(); //前提条件为element可见(visible)且高度长度大于0,如果元素点击时发生变化则会抛出(StaleElementReferenceError

- Action.click

Actions action = new Actions(driver);
action.moveToElement(element).click().perform();//模拟鼠标操作,点击元素中间位置

- Javascript scrollIntoView and click

JavascriptExecutorje=(JavascriptExecutor)getWebDriver();je.executeScript("arguments[0].scrollIntoView(false);",element);//移动到元素element对象的“底端”与当前窗口的“底部”对齐,//true为顶端je.executeScript("arguments[0].click();",element);//通过JS点击元素,可绕开元素被图层覆盖或透明没有正面大小问题

  

3. Driver

- Chromedriver:

○ Headless mode: (Chrome headless模式时不使用Xvfb,Xvfb为早期没有chrome headless模式时的替代X window服务, headless默认窗口大小为900x768,可自行设置)

chromeOptions.setHeadless(true);chromeOptions.addArguments("--no-sandbox");chromeOptions.addArguments("window-size=1280,900");

○ Linux/Mac环境下运行chromedriver需要强制设置其为可执行文件

Filefile=newFile("chromedriver path");file.setExecutable(true);

- Geckodriver

ProfilesIniprofile=newProfilesIni();FirefoxProfileffProfile=profile.getProfile("default");capabilities.setCapability(FirefoxDriver.PROFILE,ffProfile); //关于证书认证等的设置FirefoxOptionsfirefoxOptions=newFirefoxOptions(capabilities);firefoxOptions.setCapability("moz:webdriverClick",false);//允许点击隐藏元素,如上传文件webdriver=newFirefoxDriver(firefoxOptions);

4. Hover

- Hover and click

Actionsaction=newActions(getWebDriver());action.moveToElement(element).perform();Element.click();//如果出现点击不了的问题,可尝试更改moveToElement到父节点,点击子element

  

- Hover and hold

Actionsaction=newActions(getWebDriver());action.moveToElement(element).clickAndHold().perform();//侧面解决hover元素后在做其他操作hover元素隐藏问题action.release();

  

后续慢慢添加

转载于:https://www.cnblogs.com/testerLydia/p/9463927.html

Java+Selenium Web UI自动化测试的一些总结相关推荐

  1. 基于Selenium与Pytest框架的Web UI自动化测试系统的设计与实现

    摘要 随着互联网的高速发展,软件技术日新月异,产品更新换代的加快等,始终都离不开一个最核心的要素就是保证产品的质量,测试人员则在其中担任着不可或缺的角色.测试人员的主要工作职责就是通过各种测试手段去发 ...

  2. Web UI自动化测试系统设计

    Web UI自动化测试系统设计 1. 自动化测试简介 1.1 什么是好的自动化测试框架 在创建测试自动化框架时,我们应该考虑以下要点: 能够通过使用适当的抽象层快速创建自动化测试 应易于维护和扩展应该 ...

  3. WEB UI自动化测试框架搭建(一)_公用方法Utils

    本栏目内的所有项目使用的都是PyCharm 2020.1专业版,可以下载后自行在网上找教程破解. WEB UI自动化测试框架搭建(一)~(七)源代码:https://download.csdn.net ...

  4. Web UI 自动化测试框架 seldom

    基于 selenium 和 unittest 的 Web UI自动化测试框架. 特点 提供更加简单API编写自动化测试. 提供脚手架,快速生成自动化测试项目. 自动生成HTML测试报告生成. 自带断言 ...

  5. 种草Cypress和TestCafe,QA同学一定想了解的Web UI自动化测试工具

    摘要:Cypress和TestCafe这两个工具相比于Selenium都更加的轻量级,且在不同的方面有了改进,比如安装更简单,增加了内置等待机制,调试更加方便等. Cypress.TestCafe.P ...

  6. 通过录屏自动测试web端查询功能_海豚 Web UI自动化测试工具

    http://div.io/topic/1339 海豚是什么? 没错,它是一个 Web UI自动化测试工具,专治Web UI的各种疑难杂症,目前只针对移动端Webapp量身定做. 说到 Web UI的 ...

  7. Python+Behave+Allure Web UI自动化测试

    基于BDD模式的Web UI自动化测试体验,集成了python,behave,allure,非主流的一个路线,可以一起玩玩. 1. 概念解释 Python: 大家都懂,3以上版本 Behave:行为驱 ...

  8. Web UI自动化测试实例(登录网易云音乐账户)——(五)Taiko

    初步想法:用Taiko自动化工具,实现登录太简单了吧! 一.对taiko的认识 初识taiko: 自动化测试工具-----Taiko taiko的安装:可能踩如下坑,那些年的坑之node.js 和 t ...

  9. java+Selenium+TestNg搭建自动化测试架构(1)实现代码和数据的分离

    1.主要介绍介绍Java+Selenium+POM的自动化测试框架的搭建,第一个首先实现代码和账号URL等信息的分离.第二点支持跨浏览器,通过读取配置文件的方式实现. 1)将账号URL等信息添加在pr ...

最新文章

  1. 【js】内置对象String的常用方法
  2. c++ time函数_Python22个构造函数法助力数据挖掘与分析
  3. 【Fragment】管理机制
  4. asp.net中退出登陆的相关问题(解决后退或直接粘贴地址进入网页的问题)
  5. 手把手教你搭建Hadoop生态系统伪分布式集群
  6. linux服务器带宽设置,linux 系统查看服务器带宽使用
  7. 西瓜书+实战+吴恩达机器学习(十一)监督学习之集成学习
  8. 免费素材下载:学校学院相关图标集
  9. Xcode设置苹果应用的app icon和launch image(应用图标和启动页面)
  10. 为什么家里pm25比外面高_夫妻感情很好,男人为什么还会找情人?这是我听过最好的答案...
  11. error: ‘for‘ loop initial declarations are only allowed in C99 mode
  12. wangEditor + vue双向绑定(光标游走问题)
  13. 买土豆的故事(转中外管理)
  14. 尚硅谷java学习笔记第五天(数组上)
  15. 作为技术人员,我是如何安排学习的
  16. MTK: LSK,RSK的标签与响应
  17. 一文读懂 | Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
  18. 【机器学习之逻辑回归】sklearn+python逻辑回归详解
  19. oracle 11g 新特性之动态绑定变量窥视(一)
  20. is 简写 缩写_天美分析仪器研发中心(TREC)新推出高灵敏度积分球IS-2600

热门文章

  1. Android时间选择器对话框的使用
  2. 笔记 - AliCloud 云上安全防护 简介
  3. UVA-11995(STL+模拟)附讲解
  4. android 蓝牙 setscanmode,蓝牙LE扫描在后台无法在Android M上运行
  5. 运维一定要懂的100个网络安全小知识
  6. 面试,MySQL 搞透这 20 道就稳了
  7. 系统管理员不可错过的6款服务器监控工具
  8. hive 0.11 mysql_Hive的升级(0.8.0到0.11.0)
  9. OpenYurt v0.4.0 新特性发布:高效地管理边缘存储资源
  10. 对话 Dubbo 唤醒者北纬:3.0 将至,阿里核心电商业务也在用 Dubbo