您的位置:软件测试 > 开源软件测试 > 开源功能测试工具 > Selenium
selenium常用的js总结
作者:Young 发布时间:[ 2016/11/9 11:33:23 ] 推荐标签:功能测试 功能测试工具

  1、 对input执行输入
  直接设置value属性, 此方法主要应对输入框自动补全以及readonly属性的element,sendkeys不稳定
  比如:


  //inputbox is a WebElement
  JavascriptExecutor js = (JavascriptExecutor) driver;
  js.executeScript("arguments[0].value="北京"", from_inpox);
  对此可以封装一个typeQuick的方法
  
  /**
  * @author Young
  * @param locator
  * @param values
  * @throws Exception
  */
  protected void typeQuick(Locator locator, String values) throws Exception {
  WebElement e = findElement(driver, locator);
  log.info("type value is:  " + values);
  JavascriptExecutor js = (JavascriptExecutor) driver;
  js.executeScript("arguments[0].value=""+values+""", e);
  
  去掉只读属性
  JavascriptExecutor js = (JavascriptExecutor) driver;
  js.executeScript("arguments[0].removeAttribute("+"readonly"+")", e);
  2.对富文本框的操作
  主要应对富文本框,可以封装获取富文本框内容和设置富文本路况内容的方法
  JavascriptExecutor js = (JavascriptExecutor) driver;
  WebElement editor = driver.findElement(By.tagName("body"));
  js.executeScript(
  "arguments[0].innerHTML = '<h1>Selenium Test </h1>I love Selenium <br> this article Post By Selenium WebDriver<br><h2>Create By Young</h2>'",
  editor);
  设置富文本框内容
  
  /**
  * @author Young
  * @param locator
  * @param text
  */
  protected void setRichTextBox(Locator locator, String text) {
  WebElement e = findElement(driver, locator);
  log.info("type value is:  " + text);
  JavascriptExecutor js = (JavascriptExecutor) driver;
  js.executeScript("arguments[0].innerHTML = "" + text + """, e);
  }
  
  获取富文本框内容:
  
  /**
  * @author Young
  * @param locator
  * @param text
  * @return
  */
  protected String getRichTextBox(Locator locator, String text) {
  WebElement e = findElement(driver, locator);
  log.info("type value is:  " + text);
  JavascriptExecutor js = (JavascriptExecutor) driver;
  String result=(String) js.executeScript("arguments[0].getInnerHTML()", e);
  return result;
  }
  
  3. 滚动到指定位置
  为啥使用滚动? 因为如果页面没有完全显示,element如果是在下拉之后才能显示出来,只能先滚动到该元素才能进行click,否则是不能click操作
  JavascriptExecutor js=(JavascriptExecutor)driver;
  // roll down and keep the element to the center of browser
  js.executeScript("arguments[0].scrollIntoViewIfNeeded(true);", download);
  可以封装滚动到元素的方法的
  
  /**
  * @author Young
  * @param locator
  */
  protected void scrollToElement(Locator locator) {
  WebElement e = findElement(driver, locator);
  log.info("scroll view element");
  JavascriptExecutor js = (JavascriptExecutor) driver;
  // roll down and keep the element to the center of browser
  js.executeScript("arguments[0].scrollIntoViewIfNeeded(true);", e);
  }
  
  Dom event 事件的封装
  
  /**
  * For DOM Event
  * @author Young
  * @param locator
  * @param event
  * please refer to: http://www.w3school.com.cn/jsref/dom_obj_event.asp
  *
  */
  public void DOMEvent(Locator locator,String event)
  {
  JavascriptExecutor jse=((JavascriptExecutor)driver);
  String js="var event;if (document.createEvent){event = document.createEvent("HTMLEvents");event.initEvent(""+event+"", true, false);arguments[0].dispatchEvent(event);} else {arguments[0].fireEvent("on"+event+"")}";
  jse.executeScript(js, findElement(driver,locator)) ;
  }
  
  出处:http://www.cnblogs.com/tobecrazy/

软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd