我有一个非常简单的问题,我有一个div在一个html页面,我可以通过他的XPath访问这是://div[2]/div/div[2]/div[2]/div[2]
。
我想要一个XPath,可以提供这个div的所有子元素,但我找不到它。我需要用硒的findElements方法获取元素,但我测试的方法不起作用:
我的超文本标记语言代码如下:
<div>
<input/>
<span/>
<p></p>
</div>
我想这样使用XPath:
//div[2]/div/div[2]/div[2]/div[2]/child
我的Java Selenium脚本如下:
List<WebElement> listElement = driver.findElements(By.xpath(xpath));
for(WebElement element : listElement) {
System.out.println(element.getAttribute("id"));
}
我应该使用什么XPath来获取div
的子级?
编辑1:我确实使用了*并且它工作正常,但当我计算元素的数量时,它会将我打印为6。是不是把他的孩子看作自己的孩子?
List<WebElement> childs = driver.findElements(By.xpath("//div[2]/div/div[2]/div[2]/div[2]/*"));
在这种情况下,selenium从路径div[2]/div/div[2]/div[2]/div[2]/
中搜索所有子元素,并将它们设置为列表集合中的WebElement
对象。
如果问题中HTML片段中的div
位于
//div[2]/div/div[2]/div[2]/div[2]
然后,输入
子元素将出现在这里:
//div[2]/div/div[2]/div[2]/div[2]/input
所有的儿童元素都在这里:
//div[2]/div/div[2]/div[2]/div[2]/*
更新:
编辑1:我确实使用了*并且它工作正常,但当我计算元素的数量时,它会将我打印为6。是不是把他的孩子看作自己的孩子?
否,div/*
仅选择父div
的直接子元素。
如果您对子元素的数量超出预期感到惊讶,那么可能是基本XPath选择了多个元素,然后您选择的子元素不仅仅是目标div
元素。
更新2:
如果你不能发布MCVE,并且你仍然对返回的儿童数量感到困惑,
//div[2]/div/div[2]/div[2]/div[2]/*
尝试在您提供的XPath基础上挑战自己:
//div[2]/div/div[2]/div[2]/div[2]/
首先,试试看
//div[2]
它真的像你期望的那样选择了单个div
?
那就试试
//div[2]/div
再次,看看这一个是否真的选择了您期望的单个div
。
以这种方式继续下去,直到你到达一个所选元素的现实偏离你预期的地方。在那里你的答案会很明显,或者你有一个更具体的问题要问。
在没有看到XML/HTML的情况下,这几乎是建议所能提供的最好结果。
嗨,我一直在到处寻找一个非常简单的解释,如何通过xPath找到一个元素。 我想要的只是一种简单的方法来寻找一个元素,但是我想要找到的所有帮助都需要一个。这对我不管用。以下是我想做的: 加载URL 这是我的代码: 当我执行 我得到未定义时,我做 有没有更简单的方法来获取元素?也许是。。。。
这就是HTML代码。到目前为止,我已经进行了以下xpath查询: 这让我找到了
问题内容: 我的网页中有9行6列的表格。我想搜索文本“ MakeGoodDisabled- Programwise_09_44_38_461(n)”并获取单元格的xpath。我使用了以下内容,但由于无法在页面上找到文本而失败。你能帮忙吗?我正在使用Selenium Webdriver Junit对此进行编码。 问题答案: 我的意图是在表中查找文本并在同一行中获取相应的下一列值。我以为我将用所需的列
我试图使用python/lxml和命令提取图像URl,但在隔离url本身时遇到麻烦。 下面是我想要的围绕img的HTML: 具体来说,我想隔离<代码>https://photos.zillowstatic.com/p_h/IS2fordnekys6d1000000000.jpgurl。 我尝试了几种方法,但都没有成功,包括以下几种方法:
我试着通过电子邮件发送这个。我尝试了很多方法,但总是得到同样的结果:一个错误。 http://goto-21.net/campaign/htmlversion?mkt_hm=0 我试过这个: curl-s--user'api: key-3ax6xnjp29jd6fds4gc373sgvjxteol0'\Xhttps://api.mailgun.net/v2/samples.mailgun.org/
我在将一些客户端数据表逻辑迁移到服务器端时遇到了一些困难。 我当前的问题是,对于Datatables,如果要对一大组数据(20000行)进行分页,我首先需要加载控制器中的所有行,然后将它们传递给视图: 然后,在加载所有内容和Datatables将记录分页为500页之前,需要等待大约2分钟: 我更改了Datatables声明,以通过处理服务器端处理,如下所示: 让它按我所希望的方式工作非常顺利,但问