设为首页收藏本站
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3149|回复: 3

Webdriver API的简单封装方法

4

主题

19

帖子

401

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
401
webdriver 发表于 2015-7-22 00:33:34 | 显示全部楼层 |阅读模式
Webdriver API的简单封装方法

opera_webelement  定义操作方法的包
  1. package opera_webelement;
  2. import org.openqa.selenium.By;
  3. import org.openqa.selenium.WebDriver;
  4. import org.openqa.selenium.WebElement;
  5. import org.openqa.selenium.NoSuchElementException;
  6. public class Opera_webelement {
  7.        //文本框,密码框输入操作
  8.         public void  inputs(WebDriver wd,String locator_xpath,CharSequence[] value)
  9.         {
  10.                 wd.findElement(By.xpath(locator_xpath)).sendKeys(value);
  11.         }
  12.       //登录按钮,单选按钮,复选框单击操作
  13.         public void click(WebDriver wd,String locator_xpath)
  14.         {
  15.                 wd.findElement(By.xpath(locator_xpath)).click();
  16.         }

  17. }
复制代码
test_keywords 关键字包
  1. package test_keywords;

  2. import java.util.Set;
  3. import java.util.List;

  4. import org.openqa.selenium.By;
  5. import org.openqa.selenium.WebDriver;
  6. import org.openqa.selenium.WebElement;
  7. import org.openqa.selenium.NoSuchElementException;

  8. import opera_webelement.Opera_webelement;//导入opera_webelement包的Opera_webelement类
  9. /**
  10. *  写在前面的话:
  11. *   我写的这个WebDriver帮助类法仅仅针对于xpath访问的
  12. *   为什么这么写呢?有两点理由
  13. *   其一:xpath获取方便,我用的是firefox浏览器,只要用firepath这个插件,我们就可以正确的定位到每一个节点,并且firepath支持查询功能,值得大家使用
  14. *   其二:使用统一的xpath,给编码带来了一定的规范
  15. **/
  16. /**
  17. *@parameter  wd 浏览器类型
  18. *@parameter  url 登录地址
  19. *@parameter username_xpath 用户名xpath路径
  20. *@parameter username_data  用户名值
  21. *@parameter password_xpath 密码xpath 路径
  22. *@parameter password_data 密码值
  23. *@parameter  loginbutton_xpath 登录按钮xpath路径
  24. *@parameter  frame  frame框架 id
  25. *@parameter  seconds  验证码输入时间
  26.   **/
  27. public class Test_keywords {
  28.        //没有验证码的不在frame框的登录
  29.         public void  login(
  30.                         WebDriver wd,
  31.                         String url,
  32.                         String username_xpath,
  33.                         CharSequence[] username_data,
  34.                         String password_xpath,
  35.                         CharSequence[] password_data,
  36.                         String loginbutton_xpath                        
  37.                         ){
  38.                            wd.get(url);
  39.                            Opera_webelement cz=new Opera_webelement();
  40.                            cz.inputs(wd, username_xpath, username_data);
  41.                            cz.inputs(wd, password_xpath, password_data);
  42.                            cz.click(wd, loginbutton_xpath);                           
  43.                         }
  44.        //没有验证码的,在frame框架内的登录
  45.         public void loginframe(
  46.                         WebDriver wd,
  47.                         String url,
  48.                         String username_xpath,
  49.                         CharSequence[] username_data,
  50.                         String password_xpath,
  51.                         CharSequence[] password_data,
  52.                         String loginbutton_xpath,
  53.                         int frame
  54.                         ){
  55.                         wd.get(url);
  56.                         wd.switchTo().frame(frame);
  57.                 Opera_webelement cz=new Opera_webelement();
  58.                 cz.inputs(wd, username_xpath, username_data);
  59.                 cz.inputs(wd, password_xpath, password_data);
  60.                 cz.click(wd, loginbutton_xpath);               
  61.                  }
  62.        //带有验证码的登录
  63.         public void loginVerify(WebDriver wd,
  64.                         String url,
  65.                         String username_xpath,
  66.                         CharSequence[] username_data,
  67.                         String password_xpath,
  68.                         CharSequence[] password_data,
  69.                         String loginbutton_xpath,
  70.                         int seconds
  71.                         ){
  72.                             wd.get(url);
  73.                             Opera_webelement cz=new Opera_webelement();
  74.                         cz.inputs(wd, username_xpath, username_data);
  75.                         cz.inputs(wd, password_xpath, password_data);
  76.                         try
  77.                         {
  78.                                 Thread.sleep(seconds*1000);   //这段时间内请输入验证码
  79.                         }catch(InterruptedException e)
  80.                         {
  81.                                 e.printStackTrace();
  82.                         }
  83.                         cz.click(wd, loginbutton_xpath);               
  84.                
  85.                   }

  86. }
复制代码
对于关键字驱动的概念不是很强,如有不对的地方,欢迎大家指正。
欢迎大家评论吐槽!

转载请注明出处!
回复

使用道具 举报

0

主题

2

帖子

29

积分

新手上路

Rank: 1

积分
29
Hui 发表于 2015-7-22 09:17:23 | 显示全部楼层

回帖奖励 +3

请教下,cz是怎么调用的啊~

4

主题

19

帖子

401

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
401
webdriver  楼主| 发表于 2015-7-22 18:02:13 | 显示全部楼层
Hui 发表于 2015-7-22 09:17
请教下,cz是怎么调用的啊~

通过导入opera_webelement包下的Opera_webelement类,就能调用这个类下的方法。cz是实例化了一个Opera_webelement 对象。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
Zohar。 发表于 2016-3-4 20:14:32 | 显示全部楼层
关键字驱动其实并没有想象中的那么好,还是页面对象编写自动化脚本要来得痛快,重用性也好,维护难道既然是搞自动化测试,开发语言还是要懂的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则