Selenium WebDriver中常用到的JavaScript操作

在使用selenium中的webdriver编写automation时,我们可能需要执行一些JavaScript的代码。在selenium中有Javascript类可以执行。
import org.openqa.selenium.JavascriptExecutor;
其中有两个方法我们会经常遇到。
executeScript、executeAsyncScript

method 详情
executeScript 同步方法,用它执行js代码会阻塞主线程执行,直到js代码执行完毕;
executeAsyncScript 异步方法,它不会阻塞主线程执行。

用到JS的方法
x为水平移动的像素、y为垂直移动像素、location为元素位置
操作滚动条
1. 垂直滚动

String scroll = "document.documentElement.scrollTop=" + "y"; 
JavascriptExecutor js=(JavascriptExecutor) driver; 
js.executeScript(scroll);

2 .水平滚动

String scroll = "document.documentElement.scrollLeft=" + "x"; 
JavascriptExecutor js=(JavascriptExecutor) driver; 
js.executeScript(scroll);
  1. 滚动条式
String scroll = "document.getElementById("location").scrollLeft=x";
JavascriptExecutor js=(JavascriptExecutor)driver; 
js.executeScript(scroll);
  1. 操作文本
String text = "text"; //输入的内容
String js = "var sum=document.getElementById('id'); sum.value='" + text + "';"; 
((JavascriptExecutor)driver).executeScript(js); 
  1. 操作视频
JavascriptExecutor js=(JavascriptExecutor) driver; 
//获取视频url
js.executeScript("return arguments[0].currentSrc;",video);
//播放视频
js.executeScript("return arguments[0].play()", video); 
//暂停视频
js.executeScript("arguments[0].pause()", video);

你可能感兴趣的:(selenium)