Selenium的getXpathCount方法的實際問題解決

getXpathCount方法的問題解決     


使用該方法會出現很讓你頭疼的問題,當你要得到的元素被包含在IFrame中時,如果你直接用getXpathCount方法時,返回值爲0;可能你所測試頁面還加入了ajax的東西,比如彈出層,類似結構如下: 

<DIV id="div_1"> 

        <IFRAME> 

                 <HTML> 

                         <HEAD>...</HEAD> 

                                  <BODY> 

                                         <TABLE> 

                                                 <TR>...</TR> 

                                                 ... 

                                                 ... 

                                         </TABLE>       

                                  </BODY> 

                 </HTML> 

        </IFRAME> 

</DIV> 

如果你想得到body裏面類似TR個數的內容時,如上所說,返回值就會是0。因爲這個元素被放置在IFRAME裏。所以在使用該方法之前首先要選中該IFRAME。


方法如下: 

selenium.selectFrame("xpath=//div[@id='div_1']/iframe"); 

Number c = selenium.getXpathCount(....);  //此處就是你要得到的元素內容 

int  count = c.intValue(); 

System.out.println("當前元素個數爲 " + count); 

當你使用上面方法後,應該會解決。但可能由於頁面使用了Ajax,所以得到值依然會是0。所以這便是要解決的最終問題。其實方法相當簡單 

Thread.sleep(4000);  //將該句加入到上面代碼最前邊。當然這樣也存在某些問題,比如說服務器太慢而會導致同樣返回0,但目前這樣做也是最直接有效地!~ 

你同樣可以用selenium.waitForCondition()來代替Thread.sleep()方法


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章