selenium高效應(yīng)對(duì)Web頁(yè)面元素刷新的實(shí)例講解
當(dāng)我們?cè)陧?yè)面上進(jìn)行selenium.type()或者selenium.click()操作的時(shí)候,往往需要需要等待一個(gè)元素的出現(xiàn),對(duì)于一般的網(wǎng)頁(yè),當(dāng)我們進(jìn)入一個(gè)新頁(yè)面的時(shí)候,往往會(huì)使用selenium.waitForPageToLoad(WAITTIME);
對(duì)彈出窗口中的元素,往往寫死要等待多少秒,其實(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)過(guò)改進(jìn)的click方法
Java代碼
protected void click(String locator) { waitForElement(locator); selenium.click(locator); }
從此,我們可以不管頁(yè)面倒是是不是ajax實(shí)現(xiàn),只要調(diào)用這樣的click()方法,程序中就不需要出現(xiàn)Thread.sleep(10000)這樣的代碼了。
以上這篇selenium高效應(yīng)對(duì)Web頁(yè)面元素刷新的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python基于Selenium的web自動(dòng)化框架
- selenium跳過(guò)webdriver檢測(cè)并模擬登錄淘寶
- selenium+python自動(dòng)化測(cè)試之使用webdriver操作瀏覽器的方法
- Selenium(Python web測(cè)試工具)基本用法詳解
- Selenium Webdriver實(shí)現(xiàn)截圖功能的示例
- java selenium 常見(jiàn)web UI 元素操作及API使用
- PowerShell調(diào)用Web測(cè)試工具Selenium實(shí)例
- Selenium webdriver添加cookie實(shí)現(xiàn)過(guò)程詳解
相關(guān)文章
使用MUI框架構(gòu)建App請(qǐng)求http接口實(shí)例代碼
下面小編就為大家分享一篇使用MUI框架構(gòu)建App請(qǐng)求http接口實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01解決SpringBoot打成jar運(yùn)行后無(wú)法讀取resources里的文件問(wèn)題
這篇文章主要介紹了解決SpringBoot打成jar運(yùn)行后無(wú)法讀取resources里的文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08Netty啟動(dòng)流程注冊(cè)多路復(fù)用源碼解析
這篇文章主要介紹了Netty啟動(dòng)流程注冊(cè)多路復(fù)用源碼分析,繼續(xù)分析channel是如何注冊(cè)到selector中的,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03MyBatis查詢無(wú)記錄時(shí)的返回值問(wèn)題
這篇文章主要介紹了MyBatis查詢無(wú)記錄時(shí)的返回值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01RocketMQ生產(chǎn)者一個(gè)應(yīng)用不能發(fā)送多個(gè)NameServer消息解決
這篇文章主要為大家介紹了RocketMQ生產(chǎn)者一個(gè)應(yīng)用不能發(fā)送多個(gè)NameServer消息原因及解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Java時(shí)間類Date類和Calendar類的使用詳解
這篇文章主要介紹了Java時(shí)間類Date類和Calendar類的使用詳解,需要的朋友可以參考下2017-08-08簡(jiǎn)單談?wù)凧VM、JRE和JDK的區(qū)別與聯(lián)系
簡(jiǎn)單的說(shuō)JDK是用于開發(fā)的而JRE是用于運(yùn)行Java程序的。JDK和JRE都包含了JVM,從而使得我們可以運(yùn)行Java程序。JVM是Java編程語(yǔ)言的核心并且具有平臺(tái)獨(dú)立性。2016-05-05Spring MVC接口防數(shù)據(jù)篡改和重復(fù)提交
這篇文章主要為大家詳細(xì)介紹了Spring MVC接口防數(shù)據(jù)篡改和重復(fù)提交,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08