Selenide 如何只找到 child 个 SelenideElement
Selenide how to find only child of SelenideElement
我有 SelenideElement 并想找到特定元素 - 他的 child,但我得到的不是这个,而是另一个元素的 child。
在应用程序中,我有 table,即内部有 30 个 tbody。我对每个 div 进行迭代,并且我想对特定元素的每个迭代 child 进行迭代。而不是这个,我得到第一个元素的 child 。
IE。
我有以下元素:
<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 中获取文本:Child 的 child 2
而不是这个,我从元素 1
得到 Child 的 child 2
SelenideElement element = $x("//table//tbody[2]/tr", i);
element.find(byXpath("//td[2]/div")).getText()
预期结果:我得到了元素2的内容,但是我得到了元素1的内容..
有两种解决方法(都可以):
通过$("tbody:nth-child(2)").find(By.cssSelector("tr"));
导航到子元素
使用.get()
函数:$$("tbody").get(1).find(By.cssSelector("tr")).getText();
Get 函数旨在在集合元素中导航。因此,如果您有 10 个 tbody,您可以轻松地浏览其中的任何一个,而无需在选择器中指定它。
我有 SelenideElement 并想找到特定元素 - 他的 child,但我得到的不是这个,而是另一个元素的 child。
在应用程序中,我有 table,即内部有 30 个 tbody。我对每个 div 进行迭代,并且我想对特定元素的每个迭代 child 进行迭代。而不是这个,我得到第一个元素的 child 。 IE。 我有以下元素:
<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 中获取文本:Child 的 child 2 而不是这个,我从元素 1
得到 Child 的 child 2SelenideElement element = $x("//table//tbody[2]/tr", i);
element.find(byXpath("//td[2]/div")).getText()
预期结果:我得到了元素2的内容,但是我得到了元素1的内容..
有两种解决方法(都可以):
通过
$("tbody:nth-child(2)").find(By.cssSelector("tr"));
导航到子元素
使用
.get()
函数:$$("tbody").get(1).find(By.cssSelector("tr")).getText();
Get 函数旨在在集合元素中导航。因此,如果您有 10 个 tbody,您可以轻松地浏览其中的任何一个,而无需在选择器中指定它。