我是靠谱客的博主 自然草莓,最近开发中收集的这篇文章主要介绍java的webdriver_WebDriver之java篇,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

自己封装的WebDriver的API方法

package com.qiang.data;

import java.util.Iterator;

import java.util.List;

import java.util.Set;

import org.openqa.selenium.By;

import org.openqa.selenium.NoSuchElementException;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

/**

* WebDriver帮助类

*/

public class WebDriverUtil {

/**

* 写在前面的话:

*   我写的这个WebDriver帮助类法仅仅针对于xpath访问的

*   为什么这么写呢?有两点理由

*   其一:xpath获取方便,我用的是firefox浏览器,只要用firepath这个插件,我们就可以正确的定位到每一个节点,并且firepath支持查询功能,值得大家使用

*   其二:使用统一的xpath,给编码带来了一定的规范 */

/**

* 没有验证码的的登录

* @param wd WebDriver对象

* @param unameXpath 用户名的xpath路径

* @param uname 用户名

* @param pwdXpath 密码xpath路径

* @param pwdValue 密码

* @param loginBtnXpath 登录按钮xpath

*/

public static void login(WebDriver wd,String url,String unameXpath,String uname,String pwdXpath,String pwd,String loginBtnXpath){

wd.get(url);

inputs(wd,unameXpath,uname);

inputs(wd,pwdXpath, pwd);

click(wd,loginBtnXpath);

}

/**

* 登录可能放在一个frame里了:我是因为遇到过,所以才加了个方法的

* @param wd WebDriver对象

* @param unameXpath 用户名的xpath路径

* @param uname 用户名

* @param pwdXpath 密码xpath路径

* @param pwdValue 密码

* @param loginBtnXpath 登录按钮xpath

* @param frame 第几个框架

*/

public static void loginFrame(WebDriver wd,String url,String unameXpath,String uname,String pwdXpath,String pwd,String loginBtnXpath,int frame){

wd.get(url);

wd.switchTo().frame(frame);

inputs(wd,unameXpath,uname);

inputs(wd,pwdXpath, pwd);

click(wd,loginBtnXpath);

}

/**

* 有验证码的登录

* @param wd WebDriver对象

* @param unameXpath 用户名的xpath路径

* @param uname 用户名

* @param pwdXpath 密码xpath路径

* @param pwdValue 密码

* @param loginBtnXpath 登录按钮xpath

* @param seconds 输入验证码的间隔

*/

public static void loginVerify(WebDriver wd,String url,String unameXpath,String uname,String pwdXpath,String pwd,String loginBtnXpath,int seconds){

wd.get(url);

inputs(wd,unameXpath,uname);

inputs(wd,pwdXpath, pwd);

try {

Thread.sleep(seconds*1000);   //这段时间内请输入验证码

} catch (InterruptedException e) {

e.printStackTrace();

}

click(wd,loginBtnXpath);

}

/**

* 获取页面单个元素

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @return

*/

public static WebElement getElement(WebDriver wd,String xpath){

return wd.findElement(By.xpath(xpath));

}

/**

* 获取页面的一组元素

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @return

*/

public static List getElements(WebDriver wd,String xpath){

return wd.findElements(By.xpath(xpath));

}

/**

* 获取元素节点的文本值

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @return

*/

public static String getText(WebDriver wd,String xpath){

return wd.findElement(By.xpath(xpath)).getText();

}

/**

* 获取元素节点的文本值

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @return 没有找到该元素时会有个提示,并且不会报错,建议使用

*/

public static String getExistText(WebDriver wd,String xpath){

if(isExist(wd, xpath)){

return getText(wd, xpath);

}

return "-1";

}

/**

* 获取元素节点的属性值

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @attribute 要获取目标节点的哪个属性

* @return

*/

public static String getAttribute(WebDriver wd,String xpath,String attribute){

return wd.findElement(By.xpath(xpath)).getAttribute(attribute);

}

/**

* 点击节点

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @return

*/

public static void click(WebDriver wd,String xpath){

wd.findElement(By.xpath(xpath)).click();

}

/**

* 输入文本

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @return

*/

public static void inputs(WebDriver wd,String xpath,String value){

wd.findElement(By.xpath(xpath)).sendKeys(value);

}

/**

* 判断是否选中

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @return

*/

public static boolean isChecked(WebDriver wd,String xpath){

return wd.findElement(By.xpath(xpath)).isSelected();

}

/**

* 判断是否可用

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @return

*/

public static boolean isEnabled(WebDriver wd,String xpath){

return wd.findElement(By.xpath(xpath)).isEnabled();

}

/**

* 判断是否存在元素

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

* @return

*/

public static boolean isExist(WebDriver wd,String xpath){

try{

wd.findElement(By.xpath(xpath));

return true;

}catch (NoSuchElementException e) {

return false;

}

}

/**

* 选中复选框,其实和点击一样,只是重新起了个名字

* @param wd WebDriver对象

* @param xpath 目标节点的xpath

*/

public static void check(WebDriver wd,String xpath){

click(wd, xpath);

}

/**

* 点击那种隐藏的下拉框

* @param wd WebDriver对象

* @param xpath1  事件源节点的xpath

* @param xpath2  目标节点的xpath

*/

public static void clickHidden(WebDriver wd,String xpath1,String xpath2){

click(wd, xpath1);

click(wd, xpath2);

}

/**

* 获取隐藏的文本,原理同上

* @param wd WebDriver对象

* @param xpath1  事件源节点的xpath

* @param xpath2  目标节点的xpath

*/

public static void getHiddenText(WebDriver wd,String xpath1,String xpath2){

click(wd, xpath1);

getText(wd, xpath2);

}

/**

* 获取隐藏节点的属性值

* @param wd WebDriver对象

* @param xpath1  事件源节点的xpath

* @param xpath2  目标节点的xpath

* @param attribute 要获取目标节点的哪个属性

*/

public static String getHiddenAttribute(WebDriver wd,String xpath1,String xpath2,String attribute){

click(wd, xpath1);

return  getAttribute(wd, xpath2, attribute);

}

/**

* 切换窗口

* @param wd WebDriver对象

* @param title 要切换窗口的标题

*/

public static void changeWindow(WebDriver wd,String title){

String current = wd.getWindowHandle();

Set all = wd.getWindowHandles();

Iterator iterator = all.iterator();

while (iterator.hasNext()) {

String handle = iterator.next();

if(handle.equals(current)){

continue;

}

else{

wd.switchTo().window(handle);

if(wd.getTitle().contains(title)){

System.out.println("窗口成功跳转");

break;

}

else{

continue;

}

}

}

}

}

最后

以上就是自然草莓为你收集整理的java的webdriver_WebDriver之java篇的全部内容,希望文章能够帮你解决java的webdriver_WebDriver之java篇所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部