您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源功能測(cè)試工具 > Selenium
Selenium WebDriver之JavaScript
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/12/15 14:22:59 ] 推薦標(biāo)簽:Selenium 功能測(cè)試

  6. Javascript重寫confirm
  String js ="window.confirm = function(msg){ return true;}”
  ((JavascriptExecutor)driver).executeScript( js);
  通過(guò)執(zhí)行上面的js,該頁(yè)面上所有的confirm將都不再?gòu)棾觥?br />   7. 動(dòng)態(tài)載入jquery
  并不是所有的網(wǎng)頁(yè)都引入了Jquery,如果我們要在這些網(wǎng)頁(yè)上執(zhí)行Jquery代碼,必須動(dòng)態(tài)加載Jquery source文件
  driver.get("file:///C:/test.html");
  boolean flag =(boolean)(driver_js).executeScript("return typeof jQuery =='undefined'");
  if (flag)
  {
  driver_js.executeScript("var jq =document.createElement('script');"
  + "jq.type ='text/javascript'; "
  +"jq.src ='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js';"
  +"document.getElementsByTagName('head')[0].appendChild(jq);");
  Thread.sleep(3000);
  }
  waiter.waitForPageLoad();
  driver_js.executeScript("$("input#testid").val("test");");
  8. 判斷元素是否存在
  可以通過(guò)下面的辦法來(lái)判斷頁(yè)面元素是否存在,但是缺點(diǎn)是如果元素不存在,必須在拋出exception后才能知道,所以會(huì)消耗一定的時(shí)間(需要超時(shí)后才會(huì)拋出異常)。
boolean ElementExist(By Locator){
try{
driver.findElement(Locator);
return true;
}
catch(org.openqa.selenium.NoSuchElementException ex)
{
return false;
}
}
  也許我們可以在JavaScript中判斷頁(yè)面元素是否存在,然后再將結(jié)果返回給Webdriver的Java代碼。
  頁(yè)面元素
  String js =" if(document.getElementById("XXX")){ return true; } else{ return false; }”
  String result = ((JavascriptExecutor)driver).executeScript(js);
  或者
  表單元素
  String js =" if(document.theForm.###){return true; } else{ return false; }”
  String result = ((JavascriptExecutor)driver).executeScript(js);
  9. 結(jié)尾
  JavaScript在WebDriver中還可以做很多事情,但這還不是全部。比如,我們是否可以編寫代碼來(lái)監(jiān)視在整個(gè)Webdrvier測(cè)試代碼運(yùn)行過(guò)程是否產(chǎn)生過(guò)JavaScriptError呢,答案是肯定的,有興趣的同學(xué)可以深入研究一下。

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd