Selenium的封装与重用
来源:互联网 发布:假身份证淘宝怎么搜 编辑:程序博客网 时间:2024/06/18 14:41
用过一段webdriver之后就会知道经常用到的只有几个常用的selenium API方法,大家自己可以对selenium的API进行二次封装之后每次可以直接调用封装后自己写的方法来间接调用selenium的API。
webdriver接口下的一些方法的封装
查看Selenium的官方API可知WebDriver接口在org.openqa.selenium这个包下面
而WebDriver接口下常用的方法有get()、close()、findElement()、findElements()、getText()、getAttribute、switchTo()。
1)对get()、close()方法的封装:
WebDriver driver = new FirefoxDriver();
// 通过url打开相应的页面
public void openBrowser(String url)
{
driver.get(url);
}
// 关闭相应的页面
public void closeBrowser()
{
driver.close();
}
2)对findElement()、getText()、switchTo()封装
// 查找到某一元素并且给予相应的值
// 一般用在对文本输入框元素的定位和输入相应值
public void sendKey(By by,String value)
{
driver.findElement(by).sendKeys(value);
}
// 查找到某元素并点击
public void elementClick(By by)
{
driver.findElement(by).click();
}
/*
*** 先定位到相应的选择框
*** 再定位到详细的待选项
*** 一般用在定位下拉选择框中的某一个元素
*/
public void selectElement(By by,String text)
{
Select select = new Select(driver.findElement(by));
select.selectByVisibleText(text);
}
// 获取链接元素的url值
public String getLinkUrl(By by)
{
return driver.findElement(by).getAttribute("href");
}
// 判断某个元素是否存在
public boolean isElementExist(By by)
{
try
{
Boolean bool = driver.findElement(by).isDisplayed();
return bool;
}
catch(NoSuchElementException e)
{
return false;
}
}
// 获得某元素的文本描述信息
public String getWebText(By by)
{
try {
return driver.findElement(by).getText();
}
catch (NoSuchElementException e){
return "Text does not exist!";
}
}
3)findElements()相关方法的封装
/*
*** 在一个元素集合中通过遍历文本内容定位到相应的元素
*/
public void clickElementContainingText(By by,String text)
{
List<WebElement> elementList = driver.findElements(by);
for(WebElement e:elementList)
{
if(e.getText().contains(text))
{
e.click();
break;
}
}
}
/*
*** 在一个元素集合中通过遍历文本内容获取相应的url
*/
public 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;
}
4)frame相关的方法封装
/*
*** 某些元素由于属于某个iframe的需要先定义到frame然后再在此frame里边查找该元素
*** 此方法适合定位文本链接型元素
*/
public void frameElementClick(By by,String text)
{
WebElement element = driver.switchTo().frame(text).findElement(by);
element.click();
}
/*
*** 某些元素由于属于某个iframe的需要先定义到frame然后再在此frame里边查找该元素
*** 此方法适合定位文本输入框型元素
*/
public void frameElementSendKey(By by,String text)
{
WebElement element = driver.switchTo().frame(text).findElement(by);
element.sendKeys(text);
}
另外在不同frame之间切换时不要忘记使用以下方法:
driver.switchTo().defaultContent();
注:大家可以把以上方法放到一个jar包里边 直接调用就可以了
0 0
- Selenium的封装与重用
- Selenium的封装与重用
- Selenium 封装与重用
- 封装与重用演变史
- 封装与重用演变史
- Android底部菜单的封装及重用
- Android底部菜单的封装及重用
- Selenium常用方法的封装
- WebDriver拾级而上·之十 封装与重用
- WebDriver拾级而上·之十 封装与重用
- 封装selenium
- 如何把握可重用与不可重用的人才
- 控件事件的封装,达到重用的目的
- selenium二次封装的测试框架选择
- Android布局封装重用:iniclude和merge的使用
- 封装能重用的自定义Adapter,向翔哥致敬
- TCP的TIME_WAIT快速回收与重用
- TCP的TIME_WAIT快速回收与重用
- Linux crontab定时执行任务 命令格式与详细例子
- Error (171173): Node from partition Top cannot preserve previous 管脚分配错误
- JQuery源码浅析之工具-each
- C语言-10
- SGU 102(Coprimes)
- Selenium的封装与重用
- 大图处理
- 杭电ACM1431——素数回文~~打表法
- opencv日常学习之给ROI,以及给图片加水印
- HBase 简介以及个人理解(原理,基本概念,基本架构)
- iOS中对象属性的归档和解档(runtime+KVC)快捷解决方案
- 使用Eclipse查看java源码
- Selenium的延迟等待
- 指针输出与取地址符输出