我有SelenideElement,想找到特定的元素-他的孩子,但取而代之的是,我得到了另一个元素的孩子。
在应用程序中,我的桌子里面有30个肢体。我在每个div上进行迭代,并且希望获得特定元素的每个迭代子级。取而代之的是,我得到了第一个元素的孩子。 即 我具有以下要素:
<table>
<tbody>Element 1
<tr>Child
<td>Child's child 1</td>
<td>Child's child 2</td>
</tr>
</tbody>
<tbody>Element 2
<tr>Child
<td>Child's child 1</td>
<td>Child's child 2</td>
</tr>
</tbody>
我想从元素2获取以下内容的文本:孩子的孩子2 取而代之的是,我从元素1获取了孩子的孩子2
SelenideElement element = $x("//table//tbody[2]/tr", i);
element.find(byXpath("//td[2]/div")).getText()
预期结果:我得到元素2的内容,但是我得到元素1的内容。
答案 0 :(得分:0)
有两种解决方法(都可以):
通过$("tbody:nth-child(2)").find(By.cssSelector("tr"));
使用.get()
函数:$$("tbody").get(1).find(By.cssSelector("tr")).getText();
获取功能旨在在集合元素中导航。因此,如果您有10个肢体,则无需在选择器中指定即可轻松浏览其中的任何一个。