关于隐藏元素和多个元素的定位

本文深入探讨了使用Selenium处理隐藏元素及定位多个元素的技巧,包括利用JavascriptExecutor接口进行操作和通过XPath表达式定位具有相同属性的元素。提供了简单示例并分享了关于Xpath定位器的学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b]一. 关于隐藏元素[/b],
相信大家都碰到过定位一个当前hidden的元素。看到了很多方法,先总结一下,比较通用的肯定还是用JavascriptExecutor接口的方法了:
JavascriptExecutor js = (JavascriptExecutor) driver;
String myjs="document.getElementById('ctl00_c_NewMenu|1').click();";
js.executeScript(myjs);
或者有值输入的可以这样
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].value='2014-01-10';", driver
.findElement(By.id("Search_EndTime")));
具体JS脚本的写法也有很多了,可以多学习下JS的语法,句法等。在此因为主要是想写关于selenium的博客,暂且不多赘述了。

[b]二. 关于多个元素[/b]
关于多个元素,最常见的,可以利用Xpath定位器定位其所在节点的父节点,祖父节点或利用子节点定位,具体关于Xpath,我想分享下Selenium中文论坛的教程,地址如下:
[color=red]1.
http://www.seleniumcn.cn/read.php?tid=7973
2.
http://www.seleniumcn.cn/read.php?tid=7982[/color]
在这里我只讲一个最简单的例子好了,就是我们在定位多个元素,但多个元素有同一属性的时候,我们可以用一些XPath表达式去定位元素。例如,多个输入框:先用driver.findElements方法先把元素装到List里面取,然后,我们用//div[input][label][input]且满足//input[@type='text']的元素值,这样我们就可以把页面所有满足此条件的元素得到了。
List<WebElement> InputFields=driver.findElements(By.xpath("//div[input][label][input]//input[@type='text']"));
然后我们给这些元素sendKeys就方便多了,
String [][] tab2=CMD1_getExcel_Step3(cmd,method);/[color=green]/The method to get array list tab2[/color]
for(int i=0;i<tab2.length;i++)
{
for(int j=0;j<tab2[j].length;j++)
{
InputFields.get(i).sendKeys(tab2[i][j]);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值