这篇文章主要介绍了如何在selenium中使用js实现定位,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
学习selenium的时候经常用扫的定位方式WebDriver定位方式,但是一些Windows的窗口就无力了,这时候可以用js定位使用js定位的时候是用DOM树定位方式
eg:
document.getElementById("su");
这里就可以看出来,和浏览器中的console控制台的定位方式一样样的——果然知识都是相通的
接下来就是正题:
selenium中执行js脚本:
第一步首先强转成JavascriptExcetor:
JavaScriptExecutor js = (JavascriptExecutor) driver;
然后用此JavascriptExcetor对象调用js定位的方法
举例:// 设置日期控件的读写属性
((JavascriptExecutor) driver).executeScript(
"document.getElementById(\"fromDate\").readOnly=false"
);
// 直接为日期控件强行赋值
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(
"document.getElementById('fromDate').setAttribute('value','2013-06-21');"
);
// 富文本编辑框的处理
driver.switchTo().frame(
"ueditor_0"
);
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(
"document.body.innerHTML='ABCDEFG'"
);
//js模拟点击
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(
"arguments[0].click();"
,driver.findElement(By.id(
"su"
)));
//滚动条操作
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(
"document.documentElement.scrollTop=1500"
);
//元素赋值
document.getElementById(
'HD_CheckIn'
).value=
'zhangsan'
;
//日期类型元素赋值
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(
"arguments[0] .value='2016-04-20';"
,driver.findElement(By*****)));
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
联系客服