使用Webdriver执行JS

首先,我们使用如下方式初始化driver:

Java代码  

  1. WebDriver driver = new FirefoxDriver();
  2. JavascriptExecutor jse = (JavascriptExecutor)driver;

1.直接传入Javascript代码

可以直接给jse传入javascript代码:

Java代码  

  1. jse.executeScript("window.document.getElementById(‘jingshou‘).click()";

2.传入WebElement执行JS:

Java代码

  1. WebElement element = driver.findElement(By.id("jingshou"));
  2. jse.executeScript("arguments[0].click();", element);

又或者:

Java代码

  1. jse.executeScript("arguments[0].onclick=function(){alert(‘This is my alert!‘);}", element)

其中auguments[0]就代表element, 甚至我们可以传入更多的参数,比如

Java代码

  1. WebElement div = driver.findElemnt(By.id("myDiv"));
  2. jse.executeScript("arguments[0].setAttribute(‘style‘, arguments[1])", div, "height: 1000px");

通过执行以上代码,我们指定的DIV就新增(修改)了 style {height: 1000px}的属性

本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2018929

时间: 2024-10-01 05:20:35

使用Webdriver执行JS的相关文章

使用Webdriver执行JS小结

首先,我们使用如下方式初始化driver: Java代码   WebDriver driver = new FirefoxDriver(); JavascriptExecutor jse = (JavascriptExecutor)driver; 1.直接传入Javascript代码 可以直接给jse传入javascript代码: Java代码   jse.executeScript("window.document.getElementById('jingshou').click()"

在CMD下启动vmware、Xshell连接虚拟机以及控制Chrome浏览器自动执行js登录校园网

标题有点长,主要是写个bat出来玩玩, (1)不用每次都手动关闭mysql服务(我不想把它设为手动启动,有强迫症) (2)然后希望每次vmware能自动连上虚拟机 (3)以及每次Xshell都能自动启动,然后就连上虚拟机 (4)然后校园网每次都要打开,输入帐号密码什么的,才能连网,我希望它自己搞定 做完了这几步还是有点意思的,主要是浏览器还是网页的什么自动化测试,然后eclipse下项目打包成可执行的jar包 现在听我娓娓道来吧! 前面要达到的目的跟着后面的命令并无关联 (1)首先在bat里面关

Webdriver执行JavaScript代码的方式

WebDriver driver = new ChromeDriver(); JavascriptExecutor jse = (JavascriptExecutor)driver; 1.直接传入JavaScript代码 jse.executeScript("window.open('" + String.format(detailsUrl,urlParam[0],urlParam[1],urlParam[2],urlParam[4],urlParam[3] ) + "')&

8. 执行js

webdriver提供了execute_script()接口来帮助我们完成这一工作.在实际的测试脚本中,以下两种场景是经常遇到的 在页面直接执行一段js 在某个已经定位的元素的上执行js js.html <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>js</title> &l

转:selenium webdriver 执行javascript代码

在用selenium webdriver 编写web页面的自动化测试代码时,可能需要执行一些javascript代码,selenium本身就支持执行js,我们在代码中import org.openqa.selenium.JavascriptExecutor;就可以使用executeScript.executeAsyncScript这两个方法了,其中executeScript是同步方法,用它执行js代码会阻塞主线程执行,直到js代码执行完毕:executeAsyncScript方法是异步方法,它不

python使用selenium执行JS快速完成超长字符串的输入

使用selenium的 .send_keys 方法能够满足大多数情况的输入操作,但是在输入内容很多的情况下,使用该方法会消耗很多时间. 此时可以使用selenium执行js的  .innerHTMLf方法快速输入这些内容. 但是使用js的方法有一定缺陷性,它对常见  input标签类型的输入框无效,只对大多数富文本框生效. 非常简单的html界面 <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo

selenium之执行JS

selenium执行js语句主要靠execute_script()方法实现. 实例如下: from selenium import webdriver bro=webdriver.Chrome() bro.get("https://www.zhihu.com/explore") bro.execute_script("window.scrollTo(0,document.body.scrollHeight)") bro.execute_script("al

异步执行js脚本——防止阻塞

JS允许我们修改页面中的所有方面:内容,样式和用户进行交互时的行为. 但是js同样可以阻塞DOM树的形成并且延迟页面的渲染. 让你的js变成异步执行,并且减少不必要的js文件从而提高性能. JavaScript可以查询和修改DOM和CSSOM JavaScript的执行阻塞了CSSOM的执行 JavaScript 阻塞了DOM的形成,除非特殊声明js异步执行 js是一个同步语言可以修改网页的任何方面: <html> <head> <meta name="viewpo

UIWebView和网页的交互(OC中调执行JS)

UIWebView和网页的交互(OC中调执行JS) - (void)viewDidLoad { [super viewDidLoad]; // 1.webView UIWebView *webView = [[UIWebView alloc] init]; webView.frame = self.view.bounds; webView.delegate = self; // 伸缩页面至填充整个webView webView.scalesPageToFit = YES; // 隐藏scroll