Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过文本查找元素,获取xpath并放入列表,因为每个td都是唯一的元素—SeleniumWebDriver junit_Xpath_Arraylist_Getelementbyid - Fatal编程技术网

通过文本查找元素,获取xpath并放入列表,因为每个td都是唯一的元素—SeleniumWebDriver junit

通过文本查找元素,获取xpath并放入列表,因为每个td都是唯一的元素—SeleniumWebDriver junit,xpath,arraylist,getelementbyid,Xpath,Arraylist,Getelementbyid,我有一个动态生成的表,带有thead和tbody。以下是一个例子: <tbody id="tableId" class="someclass1"> <tr id="rowId1" class="somesubclass"> <td id="item1" class="othersubclass"> <span class="attr">john Doe</span> <td id="item2"> <s

我有一个动态生成的表,带有thead和tbody。以下是一个例子:

<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街
猫
乔史密斯
60
2街
狗
|乔·多伊| 55 | 5街|猫| |乔·福| 60 | 1街|狗|

我想通过文本找到一个名为joe doe的行,并将其放入列表中

Locatior正在处理此问题,但它不是一个列表

@FindBy(xpath = "//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]")
private List<WebElement> list;
@FindBy(xpath=“//tbody[contains(@id,'tableId')]/tr[td//text()[contains(,'joe doe')]]))
私人名单;
我得到了列表,但我无法重复,因为所有内容都放在了第一个位置,如下所示:

列表的第一个元素是:joe doe 55 5 street cat,所以这是[0]元素

如何将此行定位为列表,其中每个td都是列表中唯一的元素

(迭代、转换为字符串等不是问题,只是定位器。)


谢谢

我不明白-1是什么意思。不管怎样,这是给其他人的答案,希望这有帮助

google有一个类似firepath的好插件:SelAssist,我用它来测试我的xpath定位器

问题是,td不见了。所以正确的定位器是

//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]/td
它给了我一个元素列表,而不仅仅是一个


干杯

你用哪种语言?Java/PHP/Python?对不起,我没有提到。Java+seleniumwebdriver。