Selenium 方法封装 一
Selenium 封装
Selenium 封装
WebDriver对页面的操作,需要找到一个WebElement,然后再对其进行操作,比较繁琐:
- WebElement element =driver.findElement(By.name("q"));
- element.sendKeys("Cheese!");
我们可以考虑对这些基本的操作进行一个封装,简化操作。比如,封装代码:
- protected void sendKeys(By by, String value){
- driver.findElement(by).sendKeys(value);
- }
那么,在测试用例可以这样调用:
sendKeys(By.name("q"),”Cheese!”);
类似的封装还有:
- import java.util.List;
- import java.util.NoSuchElementException;
- import java.util.concurrent.TimeUnit;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.remote.RemoteWebDriver;
- import org.openqa.selenium.support.ui.WebDriverWait;
- public class DriverAction {
- protected RemoteWebDriver driver;
- protected WebDriverWait driverWait;
- private int WAIT_ELEMENT_TO_LOAD=10;
- protected boolean isWebElementExist(By selector) {
- try {
- driver.findElement(selector);
- return true;
- } catch(NoSuchElementException e) {
- return false;
- }
- }
- protected String getWebText(By by) {
- try {
- return driver.findElement(by).getText();
- } catch (NoSuchElementException e) {
- return "Text not existed!";
- }
- }
- protected void clickElementContainingText(By by, String text){
- List<WebElement>elementList = driver.findElements(by);
- for(WebElement e:elementList){
- if(e.getText().contains(text)){
- e.click();
- break;
- }
- }
- }
- protected String getLinkUrlContainingText(By by, String text){
- List<WebElement>subscribeButton = driver.findElements(by);
- String url = null;
- for(WebElement e:subscribeButton){
- if(e.getText().contains(text)){
- url =e.getAttribute("href");
- break;
- }
- }
- return url;
- }
- protected void click(By by){
- driver.findElement(by).click();
- driver.manage().timeouts().implicitlyWait(WAIT_ELEMENT_TO_LOAD,TimeUnit.SECONDS);
- }
- protected String getLinkUrl(By by){
- return driver.findElement(by).getAttribute("href");
- }
- protected void sendKeys(By by, String value){
- driver.findElement(by).sendKeys(value);
- }
- }
转载于:https://www.cnblogs.com/111testing/p/6986918.html
Selenium 方法封装 一相关推荐
- 【EventBus】事件通信框架 ( 实现几个关键的封装类 | 消息中心 | 订阅注解 | 订阅方法封装 | 订阅对象-方法封装 | 线程模式 )
文章目录 一.消息中心 二.订阅方法时的注解 三.订阅方法封装 四.订阅对象-方法封装 五.线程模式 一.消息中心 此处暂时只实现一个单例类 , 后续 注册订阅者 , 处理事件传递 , 取消注册订阅者 ...
- javascript中最最最常用的方法封装
javascript 常用方法的封装,小编持续升级中... 方法封装(js原生): 一.Object 类型 MHQ.ajaxUtils 定义一个ajax工具类 ajax 定义一个ajax工具函数 ge ...
- python3读取excel方法封装_Python读取Excel的方法封装
今天需要从一个Excel文档(.xls)中导数据到数据库的某表,开始是手工一行行输的.后来想不能一直这样,就用Python写了下面的代码,可以很方便应对这种场景.比如利用我封装的这些方法可以很方便地生 ...
- 利用ES6-Promise()方法封装原始jsonp实现跨域请求公用方法(告别使用JQuery封装好的jsonp)
在项目中,经常需要用到jsonp实现跨域请求,假如使用JQuery封装好的jsonp方法,是很容易实现的,缺点:需要引入JQuery库. $.ajax({url : './package.json', ...
- python 接口测试 url_Python 接口测试之接口请求方法封装
引言 前面讲过三篇文章: 既然我们接口测试用例写好了,测试数据也拿到了,那么就是模拟调用接口的方法了,方法有get,post,put,delete,具体是选择哪种,我们需要根据不同接口规定好请求方法来 ...
- 数据本地存储方法封装(笔记)localStorage、sessionStorage
数据本地存储方法封装(笔记)localStorage.sessionStorage 方法: import storage from 'good-storage'const SELLER_KEY = ' ...
- jq封装接口ajax,jquery ajax方法封装及api文件设计的代码示例
本篇文章给大家带来的内容是关于jquery ajax方法封装及api文件设计的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 封装 jquery ajax 文件/** * 封 ...
- python滑动手机屏幕_appium+python自动化24-滑动方法封装(swipe)
swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快.默认为None可不填,一般设置500-1000毫秒比较合适. swipe(self, ...
- setStyle 方法封装
setStyle 方法封装 function setStyle(el, obj) { // 将样式放入到数组中. var arr = ["height", "wi ...
- 爬虫笔记——东方财富科创板数据爬取(selenium方法)
爬虫笔记--东方财富科创板数据爬取(selenium方法) 网站观察 网站分析 公司详情页面 具体代码 selenium方式爬取 优点:无需观察网站去查找数据来源 缺点:速度较requests方法更慢 ...
最新文章
- iPhone12 safeArea顶部区域尺寸变化
- C语言经典例19-完数
- Qt Creator添3D组件模型
- apple默认备份位置_如何将Apple Maps默认设置为步行路线
- C/C++输入输出流
- java xml约束_[Java教程]XML约束
- 格式小结 css 0926
- html+javascript实现数字微调,点击一下增加1或减去1
- EnterpriseDb公司的Postgres Enterprise Manager 安装图解
- Ubuntu16.04 设置自启动脚本,系统重启自动执行自定义脚本任务
- php js轮播图片代码,html中用JS实现图片轮播的实例代码
- 偏最小二乘(Partial Least Squares,PLS)原理及模型建立
- python修改文件夹下文件夹的名字
- 华为计算机网络基础知识,华为HCNE专题一:网络基础知识
- 打开idea注释doc的rendered view模式
- 鸿蒙系统投影仪,投影仪有系统和无系统的区别 当贝OS好在哪里?体验完明白了!...
- 建议收藏 | IC专业术语盘点
- 通过js动态创建标签,并设置属性
- PhotoshopCS6
- 网络超时设置connectionTimeout和SoTimeout的区别
热门文章
- html单元格选中状态,UITableViewCell 设置单元格选中后只显示一个打勾的状态
- Python数据可视化库——Matplotlib
- Softmax分类函数
- 《Android游戏开发详解》一3.7 里程碑
- 过滤器 拦截器 controller 页面 的执行顺序
- centos7 减少/home分区空间,扩大/ 的空间
- 跨应用的访问 contentprovider
- Oracle 10.2.0.4 升级到 10.2.0.5
- 关于session应用(2)--JAVA中怎么使用session
- java Sting类函数