selenium高效應(yīng)對Web頁面元素刷新的實(shí)例講解
當(dāng)我們在頁面上進(jìn)行selenium.type()或者selenium.click()操作的時(shí)候,往往需要需要等待一個(gè)元素的出現(xiàn),對于一般的網(wǎng)頁,當(dāng)我們進(jìn)入一個(gè)新頁面的時(shí)候,往往會(huì)使用selenium.waitForPageToLoad(WAITTIME);
對彈出窗口中的元素,往往寫死要等待多少秒,其實(shí)可以使用如下更加通用高效的方法,自己寫一個(gè)waitForElement()的方法:
Java代碼
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);
}
}
這段代碼的功能是讓我們最多等待某個(gè)元素60秒,直至它出現(xiàn),否則就讓test case失敗,當(dāng)我們要click或者type某個(gè)元素的時(shí)候,就先調(diào)用這個(gè)方法,下面是經(jīng)過改進(jìn)的click方法
Java代碼
protected void click(String locator) {
waitForElement(locator);
selenium.click(locator);
}
從此,我們可以不管頁面倒是是不是ajax實(shí)現(xiàn),只要調(diào)用這樣的click()方法,程序中就不需要出現(xiàn)Thread.sleep(10000)這樣的代碼了。
以上這篇selenium高效應(yīng)對Web頁面元素刷新的實(shí)例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java SpringBoot集成ChatGPT實(shí)現(xiàn)AI聊天
ChatGPT已經(jīng)組件放開了,現(xiàn)在都可以基于它寫插件了,也許可以用它結(jié)合文字語音開發(fā)一個(gè)老人小孩需要的智能的說話陪伴啥的,這篇文章就介紹SpringBoot結(jié)合ChatGPT實(shí)現(xiàn)AI聊天感興趣的同學(xué)可以借鑒一下2023-04-04
使用Java生成32位16進(jìn)制密鑰的代碼實(shí)現(xiàn)
在許多加密和安全應(yīng)用中,生成隨機(jī)的密鑰是至關(guān)重要的一步,密鑰通常以16進(jìn)制形式表示,并且具有特定的長度,在這篇博客中,我們將探討如何使用Java生成一個(gè)32位長度的16進(jìn)制密鑰,并展示詳細(xì)的代碼示例和運(yùn)行結(jié)果,需要的朋友可以參考下2024-08-08
java.lang.UnsupportedOperationException的問題解決
本文主要介紹了java.lang.UnsupportedOperationException的問題解決,該錯(cuò)誤表示調(diào)用的方法不被支持或不可用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
Java Session驗(yàn)證碼案例代碼實(shí)例解析
這篇文章主要介紹了Java Session驗(yàn)證碼案例代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
如何解決java.util.concurrent.CancellationException問題
這篇文章主要介紹了如何解決java.util.concurrent.CancellationException問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Java HttpURLConnection超時(shí)和IO異常處理
這篇文章主要介紹了Java HttpURLConnection超時(shí)和IO異常處理的相關(guān)資料,需要的朋友可以參考下2016-09-09
MyBatis-Plus中如何配置加密功能(使用AES算法)
本文將詳細(xì)介紹如何實(shí)現(xiàn) MyBatis-Plus 中的配置加密功能,并給出相應(yīng)的代碼示例,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03

