如何通过selenium结合JavaScript实现页面元素定位?

更新于
2026-07-26 11:35:33
17阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计334个文字,预计阅读时间需要2分钟。

如何通过selenium结合JavaScript实现页面元素定位?

学习selenium时,常用的定位方式是WebDriver定位,但一些Windows窗口定位能力较弱。此时,可以使用js定位。使用js定位时,利用DOM树定位方式。例如:document.getElementById(su);这里就可以直接定位。

学习selenium的时候经常用扫的定位方式WebDriver定位方式,但是一些Windows的窗口就无力了,这时候可以用js定位

使用js定位的时候是用DOM树定位方式

eg:

document.getElementById("su");

这里就可以看出来,和浏览器中的console控制台的定位方式一样样的——果然知识都是相通的

接下来就是正题:

如何通过selenium结合JavaScript实现页面元素定位?

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*****)));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计334个文字,预计阅读时间需要2分钟。

如何通过selenium结合JavaScript实现页面元素定位?

学习selenium时,常用的定位方式是WebDriver定位,但一些Windows窗口定位能力较弱。此时,可以使用js定位。使用js定位时,利用DOM树定位方式。例如:document.getElementById(su);这里就可以直接定位。

学习selenium的时候经常用扫的定位方式WebDriver定位方式,但是一些Windows的窗口就无力了,这时候可以用js定位

使用js定位的时候是用DOM树定位方式

eg:

document.getElementById("su");

这里就可以看出来,和浏览器中的console控制台的定位方式一样样的——果然知识都是相通的

接下来就是正题:

如何通过selenium结合JavaScript实现页面元素定位?

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*****)));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。