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);
- }
- }
Selenium 方法封装 一的更多相关文章
- 封装常用的selenium方法
package com.yk.userlive.base; import java.net.MalformedURLException;import java.net.URL;import java. ...
- Java&Selenium截图方法封装
Java&Selenium截图方法封装 package util; import org.apache.commons.io.FileUtils; import org.openqa.sele ...
- Java&Selenium智能等待方法封装
Java&Selenium智能等待方法封装 ExpectedConditions方法还有很多,自然也可以继续扩展很多 package util; import org.openqa.selen ...
- Java&Selenium 模拟键盘方法封装
Java&Selenium 模拟键盘方法封装 package util; import java.awt.AWTException; import java.awt.Robot; import ...
- Java&Selenium控制滚动条方法封装
Java&Selenium控制滚动条方法封装 package util; import org.openqa.selenium.JavascriptExecutor; import org.o ...
- Java&Selenium 模拟鼠标方法封装
Java&Selenium 模拟鼠标方法封装 package util; import org.openqa.selenium.By; import org.openqa.selenium.W ...
- 《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动 ...
- 强制等待&隐士等待&显示等待&元素定位方法封装
前言 问题 学习selenium的同学估计大多数都遇见过一个问题 明明页面已经精准的定位到了元素,但是执行脚本的时候却经常报错没找到元素.其实原因很简单,就是脚本执行的速度很快,而浏览器加载页面的时候 ...
- selenium3 web自动化测试框架 二:页面基础操作、元素定位方法封装、页面操作方法封装
学习目的: 掌握自动化框架中需要的一些基础web操作 正式步骤: 使用title_contains检查页面是否正确 # -*- coding:utf-8 -*- import time from se ...
随机推荐
- 转载:基于Redis实现分布式锁
转载:基于Redis实现分布式锁 ,出处: http://blog.csdn.net/ugg/article/details/41894947 背景在很多互联网产品应用中,有些场景需要加锁处理,比如 ...
- 自定义 httpHandler 配置
开发 环境 vs2010.asp.net 4.0 时 写在<system.web> ,<httpHandlers>节点下 部署 环境Windows server 2007 , ...
- 【linux】硬盘分区
fdisk -l fdisk /dev/sda d--删除分区 n-新建分区 p--主分区 e--扩展分区 t--改变分区格式 82为swap分区 w--保存退出 http://www.blogjav ...
- 注解-->Spring配置
有必要对JDK 5.0新增的注解(Annotation)技术进行简单的学习,因为Spring 支持@AspectJ,而@AspectJ本身就是基于JDK 5.0的注解技术.所以学习JDK 5.0的注解 ...
- MathType模板不见了如何处理
MathType是一款在编辑公式方面非常好用的软件!并广泛应用在文档编辑与期刊排版中.但是新手用户在使用MathType编辑公式时会遇到一些处理不了的状况,这个时候就需要去找一些相关的教程来解决问题. ...
- Boatloader的工作流程
(1)第一节阶段的功能 1.硬件设备的初始化 2.载入u-boot第二阶段的代码到我们的RAM空间 3.设置好栈 4.跳转到第二阶段的代码入口 (2)第二阶段的功能 1.初始化本阶段所使用的硬件设备 ...
- THINKPHP5判断当前浏览器请求方式
作用 代码 是否为 GET 请求 if (Request::instance()->isGet()) 是否为 POST 请求 if (Request::instance()->isPost ...
- iOS开发之--为PCH文件添加绝对路径
要想设置PCH的相对路径,首先我们需要去查看绝对路径. 相对路径 点击PCH文件,Xcode的右侧会显示PCH的属性.这里我们可以获取到PCH的绝对路径.从工程的路径开始,前面使用$(SRCROOT) ...
- Shell脚本编程与文件系统修复
导读 Linux基金会发起了LFCS认证(Linux 基金会认证系统管理员)Linux Foundation Certified Sysadmin,这是一个全新的认证体系,旨在让世界各地的人能够参与到 ...
- 75、JSON 解析库---FastJson, Gson
JSON 的简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.用于数据转换传输, 通用于PHP,Java,C++,C#,Python等编程语言数据交 ...