selenium高效應(yīng)對Web頁面元素刷新的實例講解
當(dāng)我們在頁面上進(jìn)行selenium.type()或者selenium.click()操作的時候,往往需要需要等待一個元素的出現(xiàn),對于一般的網(wǎng)頁,當(dāng)我們進(jìn)入一個新頁面的時候,往往會使用selenium.waitForPageToLoad(WAITTIME);
對彈出窗口中的元素,往往寫死要等待多少秒,其實可以使用如下更加通用高效的方法,自己寫一個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); } }
這段代碼的功能是讓我們最多等待某個元素60秒,直至它出現(xiàn),否則就讓test case失敗,當(dāng)我們要click或者type某個元素的時候,就先調(diào)用這個方法,下面是經(jīng)過改進(jìn)的click方法
Java代碼
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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決SpringBoot打成jar運(yùn)行后無法讀取resources里的文件問題
這篇文章主要介紹了解決SpringBoot打成jar運(yùn)行后無法讀取resources里的文件問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08RocketMQ生產(chǎn)者一個應(yīng)用不能發(fā)送多個NameServer消息解決
這篇文章主要為大家介紹了RocketMQ生產(chǎn)者一個應(yīng)用不能發(fā)送多個NameServer消息原因及解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11簡單談?wù)凧VM、JRE和JDK的區(qū)別與聯(lián)系
簡單的說JDK是用于開發(fā)的而JRE是用于運(yùn)行Java程序的。JDK和JRE都包含了JVM,從而使得我們可以運(yùn)行Java程序。JVM是Java編程語言的核心并且具有平臺獨(dú)立性。2016-05-05Spring MVC接口防數(shù)據(jù)篡改和重復(fù)提交
這篇文章主要為大家詳細(xì)介紹了Spring MVC接口防數(shù)據(jù)篡改和重復(fù)提交,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08