为什么Web元素只位于列表的一个元素中?

时间:2017-12-27 17:20:56

标签: python-2.7 list selenium xpath append

我从Scopus网站抓取数据并将其保存在名为" s"的列表中。但是所有的数据都保存在s [1]中。我的代码是:

s=[]
document=driver.find_elements_by_xpath("""//*[@id="srchResultsList"]/tbody""")
for i in document:
    s.append(i.text)

我该怎么办?我在python 2.7中使用了selenium包。

1 个答案:

答案 0 :(得分:1)

我注意到您正在尝试查询tbody表标记。这不是原因吗?通常,表中只有一个tbody标记,它会产生一个唯一的元素。

你没有告诉我们你是否试图返回并保存在var中所有tr元素,或所有td元素,或者甚至是其中的另一种标记,但无论你想要返回什么,你需要改变选择器。

让我们假设你的xpath返回一个tbody元素,里面有大量的IWebElements:tr,td,a,span ......但你的选择器只询问tbody元素,而不是内部元素< / strong>,你明白了吗?

如果你想让所有tr元素都删除标题tr,只是尝试将你的xpath改为//*[@id="srchResultsList"]/tbody/tr;

您还可以使用以下xpath //*[@id="srchResultsList"]/tbody//td,它将返回您想要的所有td元素。

在另一种情况下,如果你想在tbody中的所有tr和td元素,你可以这样查询: //*[@id="srchResultsList"]/tbody/tr | //*[@id="srchResultsList"]/tbody//td

您还可以更改或创建子查询以返回您想要的所有元素,但您需要在选择器上指定它: selenium只接受没有子项的中间结果