通过文本查找元素,获取 xpath 并放入列表中,因为每个 td 都是一个唯一元素 - selenium webdriver junit
Find an element by text, get xpath and put in a list as every td is a unique element - selenium webdriver junit
我有一个带有 thead 和 tbody 的动态生成的 table。这是示例:
<tbody id="tableId" class="someclass1">
<tr id="rowId1" class="somesubclass">
<td id="item1" class="othersubclass">
<span class="attr">john Doe</span>
<td id="item2">
<span class="attr">55</span>
<td id="item3">
<span class="attr">5 street</span>
<td id="item2">
<span class="attr">cat</span>
<tr id="rowId2" class="somesubclass2">
<td id="item1" class="othersubclass2">
<span class="attr">joe smith</span>
<td id="item2">
<span class="attr">60</span>
<td id="item3">
<span class="attr">2 street</span>
<td id="item2">
<span class="attr">dog</span>
|小母鹿|55|5 街|猫|
|joe foo|60|1 条街|狗|
我想通过文本定位名称为 joe doe 的行并将其放入列表中。
Locatior 正在使用它,但它不是列表。
@FindBy(xpath = "//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]")
private List<WebElement> list;
我得到了列表,但我无法遍历,因为所有内容都像这样放在第一个位置:
列表第一个元素是:joe doe 55 5 street cat 所以这是 [0] 元素
如何将此行定位为列表,其中每个 td 都是列表中的唯一元素。
(迭代、转换为字符串等不是问题,只是定位器。)
谢谢!
我不明白 -1 是什么意思。无论如何,这是其他人的答案,希望对您有所帮助!
有一个很好的 google kinda firepath 插件:SelAssist,我用它来测试我的 xpath 定位器。
问题是,td 不见了。所以正确的定位器是
//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]/td
它给了我元素列表,而不仅仅是一个。
干杯!
我有一个带有 thead 和 tbody 的动态生成的 table。这是示例:
<tbody id="tableId" class="someclass1">
<tr id="rowId1" class="somesubclass">
<td id="item1" class="othersubclass">
<span class="attr">john Doe</span>
<td id="item2">
<span class="attr">55</span>
<td id="item3">
<span class="attr">5 street</span>
<td id="item2">
<span class="attr">cat</span>
<tr id="rowId2" class="somesubclass2">
<td id="item1" class="othersubclass2">
<span class="attr">joe smith</span>
<td id="item2">
<span class="attr">60</span>
<td id="item3">
<span class="attr">2 street</span>
<td id="item2">
<span class="attr">dog</span>
|小母鹿|55|5 街|猫| |joe foo|60|1 条街|狗|
我想通过文本定位名称为 joe doe 的行并将其放入列表中。
Locatior 正在使用它,但它不是列表。
@FindBy(xpath = "//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]")
private List<WebElement> list;
我得到了列表,但我无法遍历,因为所有内容都像这样放在第一个位置:
列表第一个元素是:joe doe 55 5 street cat 所以这是 [0] 元素
如何将此行定位为列表,其中每个 td 都是列表中的唯一元素。
(迭代、转换为字符串等不是问题,只是定位器。)
谢谢!
我不明白 -1 是什么意思。无论如何,这是其他人的答案,希望对您有所帮助!
有一个很好的 google kinda firepath 插件:SelAssist,我用它来测试我的 xpath 定位器。
问题是,td 不见了。所以正确的定位器是
//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]/td
它给了我元素列表,而不仅仅是一个。
干杯!