在selenium(webdriver)中執(zhí)行js

JavascriptExecutor js = (JavascriptExecutor) driver;js.executeScript(Stringscript,object... args);

第一行代碼將driver強(qiáng)制轉(zhuǎn)換為JavascriptExecutor

第二行代碼是執(zhí)行js,參數(shù)script是要執(zhí)行的js語(yǔ)句,可以看到第二個(gè)參數(shù)在參數(shù)類(lèi)型和參數(shù)名之間有…,

Java里,這代表這個(gè)參數(shù)可以沒(méi)有,也可以有1個(gè)或者多個(gè)。對(duì)于executeScript這個(gè)方法,取決于js語(yǔ)句是否需要參數(shù)。該方法返回值Boolean, Long, String, List or WebElement. 或者是 null.

示例

JavascriptExecutor js = (JavascriptExecutor) driver;// 用js彈出alertjs.executeScript("alert('Test Case Execution Is started Now..');");driver.switchTo().alert().accept();// 用js判斷頁(yè)面加載完畢,返回completeSystem.out.println("readyState: "+ js.executeScript("return document.readyState").toString());// 用js得到頁(yè)面的titleString title = (String) js.executeScript("return document.title");System.out.println("current page title get by js: "+ title);// 用js得到頁(yè)面的domain nameSystem.out.println("current page domain name get by js: "+ js.executeScript("return document.domain"));// 用js操作頁(yè)面元素,如高亮顯示某個(gè)元素WebElement element = driver.findElement(By.id("kw"));js.executeScript("arguments[0].setAttribute('style', arguments[1]);",? ? ? ? element,"color: orange; border: 4px solid orange;");/**

* 每隔一秒check一下頁(yè)面加載是否完成,check次數(shù)是25

*/publicvoidcheckPageIsReady() {? ? JavascriptExecutor js = (JavascriptExecutor) driver;for(inti =0; i <25; i++) {if("complete".equals(js? ? ? ? ? ? ? ? .executeScript("return document.readyState").toString())) {break;? ? ? ? }try{? ? ? ? ? ? Thread.sleep(1000);? ? ? ? }catch(InterruptedException e) {? ? ? ? ? ? e.printStackTrace();? ? ? ? }? ? }}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,734評(píng)論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,017評(píng)論 0 11
  • 永恆不變
    DavidYBS閱讀 174評(píng)論 0 0
  • 梁詩(shī)睿 很榮幸也很開(kāi)心能有這次到美國(guó)薩克拉門(mén)托市交流的機(jī)會(huì)。在接到李老師電話...
    捷徑語(yǔ)文閱讀 566評(píng)論 0 0
  • 2017年10月30號(hào),今天,沒(méi)錯(cuò)就是今天這個(gè)讓我一生都難以忘記的日子,今天是我們培訓(xùn)的第一天,上午和領(lǐng)導(dǎo)見(jiàn)面,開(kāi)...
    和曾經(jīng)的斯坦福閱讀 279評(píng)論 1 1

友情鏈接更多精彩內(nèi)容