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

  6. Javascript重寫confirm
  String js ="window.confirm = function(msg){ return true;}”
  ((JavascriptExecutor)driver).executeScript( js);
  通過執(zhí)行上面的js,該頁面上所有的confirm將都不再彈出。
  7. 動態(tài)載入jquery
  并不是所有的網(wǎng)頁都引入了Jquery,如果我們要在這些網(wǎng)頁上執(zhí)行Jquery代碼,必須動態(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. 判斷元素是否存在
  可以通過下面的辦法來判斷頁面元素是否存在,但是缺點是如果元素不存在,必須在拋出exception后才能知道,所以會消耗一定的時間(需要超時后才會拋出異常)。
boolean ElementExist(By Locator){
try{
driver.findElement(Locator);
return true;
}
catch(org.openqa.selenium.NoSuchElementException ex)
{
return false;
}
}
  也許我們可以在JavaScript中判斷頁面元素是否存在,然后再將結(jié)果返回給Webdriver的Java代碼。
  頁面元素
  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中還可以做很多事情,但這還不是全部。比如,我們是否可以編寫代碼來監(jiān)視在整個Webdrvier測試代碼運行過程是否產(chǎn)生過JavaScriptError呢,答案是肯定的,有興趣的同學可以深入研究一下。

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