PageFactory類主要用于分離頁面元素和模擬用戶瀏覽器操作代碼。下面以一個(gè)小例子來分享PageFactory的使用方法。 現(xiàn)在我們假設(shè)要對(duì)一個(gè)在線的BMI計(jì)算器進(jìn)行頁面分類。那么,在做好這道菜前,我們需要準(zhǔn)備好必須用品。
如果你用的瀏覽器和我一樣也是Chrome,點(diǎn)擊右鍵,選擇“審查元素”,瀏覽器將會(huì)出現(xiàn)類似于Firebug的定位器,Chrome有這個(gè)自帶的功能,不需要安裝插件。
@FindBy (css="div.test-result.size14.stress") protected WebElement printBMI; //這個(gè)printBMI就可以隨意取名了
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>
關(guān)連文章webdriver驅(qū)動(dòng)未在默認(rèn)目錄安裝的firefox |
|