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()方法