Selenium WebDriver之JavaScript

发表于:2014-12-15 11:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:布瓜    来源:51Testing软件测试网采编

  6. Javascript重写confirm
  String js ="window.confirm = function(msg){ return true;}”
  ((JavascriptExecutor)driver).executeScript( js);
  通过执行上面的js,该页面上所有的confirm将都不再弹出。
  7. 动态载入jquery
  并不是所有的网页都引入了Jquery,如果我们要在这些网页上执行Jquery代码,就必须动态加载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中判断页面元素是否存在,然后再将结果返回给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. 结尾
  JavaScript在WebDriver中还可以做很多事情,但这还不是全部。比如,我们是否可以编写代码来监视在整个Webdrvier测试代码运行过程是否产生过JavaScriptError呢,答案是肯定的,有兴趣的同学可以深入研究一下。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号