Selenium2.0功能测试之WebDriver执行JS方法
2023-09-11 14:20:55 时间
如果你是一个JS高手的话可以在WebDriver 中直接执行JS代码来提升效率,一般用到执行js的场景主要分一下两种:
在页面加载的时候执行JS
在某个已经定位了的元素上执行js
public class ExecuteJSOnPageLoading { private static final String URL = "file:///C:/user/Desktop/Selenium/jsdemo.html"; public static void main(String[] args) { WebDriver driver = new ChromeDriver(); // create a chrome driver driver.manage().window().maximize(); // max size the chrome window driver.get(URL); // open URL with the chrome browser try { Thread.sleep(2000); // wait for web loading } catch (InterruptedException e) { e.printStackTrace(); // Execute JavaScript on page loading ((JavascriptExecutor)driver).executeScript("alert(\"Hello,World!\")"); ele.click(); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); driver.quit(); // close webdriver package org.coderinfo.demo; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class ExecuteJSOnWebElement { private static final String URL = "file:///C:/user/Desktop/Selenium/jsdemo.html"; public static void main(String[] args) { WebDriver driver = new ChromeDriver(); // create a chrome driver driver.manage().window().maximize(); // max size the chrome window driver.get(URL); // open URL with the chrome browser try { Thread.sleep(2000); // wait for web loading } catch (InterruptedException e) { e.printStackTrace(); * Execute JavaScript on web element WebElement ele = driver.findElement(By.id("js")); // locate web element ((JavascriptExecutor) driver) .executeScript( "arguments[0]. unction(){alert(js has been execute!);}", ele); // add js on the web element ele.click(); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); driver.quit(); // close webdriver }
JS执行机制 JS是单线程 JS是单线程的,也就是说JS代码是按顺序执行的,一行一行执行的,不会出现同时执行多行代码的情况。 也就是JavaScript同一时间内只能做一件事情,如果有多个任务,就必须排队,前一个任务结束,才能执行后一个任务。(比如我们对某个DOM元素进行添加删除操作室,不同同时进行,要按照顺序执行)
public class ExecuteJSOnPageLoading { private static final String URL = "file:///C:/user/Desktop/Selenium/jsdemo.html"; public static void main(String[] args) { WebDriver driver = new ChromeDriver(); // create a chrome driver driver.manage().window().maximize(); // max size the chrome window driver.get(URL); // open URL with the chrome browser try { Thread.sleep(2000); // wait for web loading } catch (InterruptedException e) { e.printStackTrace(); // Execute JavaScript on page loading ((JavascriptExecutor)driver).executeScript("alert(\"Hello,World!\")"); ele.click(); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); driver.quit(); // close webdriver package org.coderinfo.demo; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class ExecuteJSOnWebElement { private static final String URL = "file:///C:/user/Desktop/Selenium/jsdemo.html"; public static void main(String[] args) { WebDriver driver = new ChromeDriver(); // create a chrome driver driver.manage().window().maximize(); // max size the chrome window driver.get(URL); // open URL with the chrome browser try { Thread.sleep(2000); // wait for web loading } catch (InterruptedException e) { e.printStackTrace(); * Execute JavaScript on web element WebElement ele = driver.findElement(By.id("js")); // locate web element ((JavascriptExecutor) driver) .executeScript( "arguments[0]. unction(){alert(js has been execute!);}", ele); // add js on the web element ele.click(); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); driver.quit(); // close webdriver }
JS执行机制 JS是单线程 JS是单线程的,也就是说JS代码是按顺序执行的,一行一行执行的,不会出现同时执行多行代码的情况。 也就是JavaScript同一时间内只能做一件事情,如果有多个任务,就必须排队,前一个任务结束,才能执行后一个任务。(比如我们对某个DOM元素进行添加删除操作室,不同同时进行,要按照顺序执行)
相关文章
- js中(function(){…})()立即执行函数写法理解
- html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式
- JS基础 Symbol 用于防止属性名冲突
- 【Vue/js】Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子)
- js代码从页面移植到文件里失效或js代码改动后不起作用的解决的方法
- 【Vue/js】Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子)
- DOM操作,控制HTML元素 (原生JS)
- 39dwr - util.js 功能(selectRange)
- Vue - 在纯 JS 文件中调用自定义组件 / 类似 ElementUI 弹框组件 Message、Modal(在纯 js 文件中通过 import 方式引入并调用弹框模态框组件显示出来,)
- 聊一聊Node.js中的 GC(垃圾回收)机制
- -第2章 JS方法实现下拉菜单显示和隐藏
- js清除未知定时器的方法
- js正则表达式学习和总结(必看篇)
- JS中函数的声明与函数表达式的区别
- pdf.js使用方法,精简版
- js实现页面a向页面b传参的方法
- JS生成随机数/随机字符串的5种方法小结
- Dojo第一节:学会使用firebug对js,Dojo进行调适
- js获取页面url
- JQuery/JS插件 jstree 创建节点