當(dāng)我們在頁面上進(jìn)行selenium.type()或者selenium.click()操作的時候,往往需要需要等待一個元素的出現(xiàn),對于一般的網(wǎng)頁,當(dāng)我們進(jìn)入一個新頁面的時候,往往會使用selenium.waitforpagetoload(waittime);
對彈出窗口中的元素,往往寫死要等待多少秒,其實可以使用如下更加通用高效的方法,自己寫一個waitforelement()的方法:
java代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
protected void waitforelement(string target) { for ( int second = 0 ;; second++) { if (second >= 60 ) { logger.debug( "element:" + target + " can't be found after 60 seconds" ); fail( "find element timeout: " + target); } try { if (selenium.iselementpresent(target)) break ; } catch (exception e) { logger.debug( "element:" + target + " can't be found in 60 seconds" ); assert ( false ); } pause( 1000 ); } } |
這段代碼的功能是讓我們最多等待某個元素60秒,直至它出現(xiàn),否則就讓test case失敗,當(dāng)我們要click或者type某個元素的時候,就先調(diào)用這個方法,下面是經(jīng)過改進(jìn)的click方法
java代碼
1
2
3
4
|
protected void click(string locator) { waitforelement(locator); selenium.click(locator); } |
從此,我們可以不管頁面倒是是不是ajax實現(xiàn),只要調(diào)用這樣的click()方法,程序中就不需要出現(xiàn)thread.sleep(10000)這樣的代碼了。
以上這篇selenium高效應(yīng)對web頁面元素刷新的實例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/xlemonok/article/details/55047817