Selenide如何找到SelenideElement的独生子

时间:2019-09-06 13:51:19

标签: java selenide

我有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的内容。

1 个答案:

答案 0 :(得分:0)

有两种解决方法(都可以):

  1. 通过$("tbody:nth-child(2)").find(By.cssSelector("tr"));

  2. 导航到子元素
  3. 使用.get()函数:$$("tbody").get(1).find(By.cssSelector("tr")).getText();

获取功能旨在在集合元素中导航。因此,如果您有10个肢体,则无需在选择器中指定即可轻松浏览其中的任何一个。