日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Selenium webdriver

 小豬窩969 2015-09-25

PageFactory類主要用于分離頁面元素和模擬用戶瀏覽器操作代碼。下面以一個(gè)小例子來分享PageFactory的使用方法。


現(xiàn)在我們假設(shè)要對(duì)一個(gè)在線的BMI計(jì)算器進(jìn)行頁面分類。那么,在做好這道菜前,我們需要準(zhǔn)備好必須用品。





  • Browser: Chrome




  • 找個(gè)一個(gè)用于練習(xí)的在線BMI計(jì)算器:http://www.boohee.com/assessment/bmi.htm




  • Eclipse環(huán)境




  • Junit4測(cè)試框架




  • 下載Chrome webdriver驅(qū)動(dòng):http://code.google.com/p/selenium/





首先,新建名為 BMI_MainPage.java的Junit4文件用來存儲(chǔ)和查找頁面元素的信息。




如果你用的瀏覽器和我一樣也是Chrome,點(diǎn)擊右鍵,選擇“審查元素”,瀏覽器將會(huì)出現(xiàn)類似于Firebug的定位器,Chrome有這個(gè)自帶的功能,不需要安裝插件。








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




  • 如果定位元素?zé)oID和Name屬性,通過@FindBy標(biāo)記來注釋元素的定位方式。Xpath,Css,LinkText,ClassName,Javascript等定位方式都可以,表達(dá)式和用findElement(By.xxxx())的方式一致,如:




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


         protected WebElement printBMI;  //這個(gè)printBMI就可以隨意取名了




  • 在該文件的構(gòu)造函數(shù)中初始化方法:PageFactory.initElements(driver, this);





BMI_MainPage.java





接下來,新建為名 BMI_Calculator.java的Junit4文件,用來模擬用戶的瀏覽器操作。




1.創(chuàng)建BMI_MainPage對(duì)象

BMI_MainPage mainPage;

2. 執(zhí)行測(cè)試時(shí)加載driver(driver是ChromeDriver的實(shí)例)

mainPage=new BMI_MainPage(driver);

3.用mainPage對(duì)象時(shí)不必考慮元素的具體定位方法,僅考慮BMI_MainPage類中有多少可用的自定義頁面元素

mainPage.height.sendKeys("180");

還記的這個(gè)height嗎?它就是在頁面定位是找到的id=height或name=height。想起來了嗎?如果不用pageFactory,以driver.findElement(By.id("height"))來定位元素才需要考慮是用id,name,LinkText還是xpath或者css。如何定位在BMI_MainPage已經(jīng)考慮過了。




BMI_Calculator.java







運(yùn)行結(jié)果:您的BMI指數(shù)為 18.5


如果輸出的變量名為BMI,運(yùn)行結(jié)果為:18.5



這時(shí)我們才發(fā)現(xiàn),這是因?yàn)?/span>


@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()輸出文本等價(jià)。



頁面的樣式層級(jí)如下:



<div class="test-result size14 stress">您的BMI指數(shù)為


<span class="stress red1">18.5


</span>


</div>


 





       

           
           
       

       


           
        DotBlogs Tags:
   
        selenium webdriver pageFactory元素分類
   
   

       


      
       

關(guān)連文章

              
   
       

webdriver驅(qū)動(dòng)未在默認(rèn)目錄安裝的firefox


            
    


   

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多