分享

Selenium webdriver

 小猪窝969 2015-09-25

PageFactory类主要用于分离页面元素和模拟用户浏览器操作代码。下面以一个小例子来分享PageFactory的使用方法。


现在我们假设要对一个在线的BMI计算器进行页面分类。那么,在做好这道菜前,我们需要准备好必须用品。





  • Browser: Chrome




  • 找个一个用于练习的在线BMI计算器:http://www.boohee.com/assessment/bmi.htm




  • Eclipse环境




  • Junit4测试框架




  • 下载Chrome webdriver驱动:http://code.google.com/p/selenium/





首先,新建名为 BMI_MainPage.java的Junit4文件用来存储和查找页面元素的信息。




如果你用的浏览器和我一样也是Chrome,点击右键,选择“审查元素”,浏览器将会出现类似于Firebug的定位器,Chrome有这个自带的功能,不需要安装插件。








  • 如果定位的元素有ID或Name属性,就直接用它的ID或Name属性值作为变量名,如:WebElement height;




  • 如果定位元素无ID和Name属性,通过@FindBy标记来注释元素的定位方式。Xpath,Css,LinkText,ClassName,Javascript等定位方式都可以,表达式和用findElement(By.xxxx())的方式一致,如:




        @FindBy (css="div.test-result.size14.stress")


         protected WebElement printBMI;  //这个printBMI就可以随意取名了




  • 在该文件的构造函数中初始化方法:PageFactory.initElements(driver, this);





BMI_MainPage.java





接下来,新建为名 BMI_Calculator.java的Junit4文件,用来模拟用户的浏览器操作。




1.创建BMI_MainPage对象

BMI_MainPage mainPage;

2. 执行测试时加载driver(driver是ChromeDriver的实例)

mainPage=new BMI_MainPage(driver);

3.用mainPage对象时不必考虑元素的具体定位方法,仅考虑BMI_MainPage类中有多少可用的自定义页面元素

mainPage.height.sendKeys("180");

还记的这个height吗?它就是在页面定位是找到的id=height或name=height。想起来了吗?如果不用pageFactory,以driver.findElement(By.id("height"))来定位元素才需要考虑是用id,name,LinkText还是xpath或者css。如何定位在BMI_MainPage已经考虑过了。




BMI_Calculator.java







运行结果:您的BMI指数为 18.5


如果输出的变量名为BMI,运行结果为:18.5



这时我们才发现,这是因为


@FindBy (css="div.test-result.size14.stress")


WebElement printBMI; 


定位到的div 包含了



@FindBy (css="span.stress.red1")


protected WebElement BMI;


定位到的span。



这与 用driver.findElement(By.className("test-result size14 stress")).getText()输出的文本包含了


用driver.findElement(By.className("stress red1")).getText()输出文本等价。



页面的样式层级如下:



<div class="test-result size14 stress">您的BMI指数为


<span class="stress red1">18.5


</span>


</div>


 





       

           
           
       

       


           
        DotBlogs Tags:
   
        selenium webdriver pageFactory元素分类
   
   

       


      
       

關連文章

              
   
       

webdriver驱动未在默认目录安装的firefox


            
    


   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多