获取具有相同ClassName的多个元素的列表

时间:2018-01-11 02:11:23

标签: python selenium xpath getelementsbyclassname

我想抓一下Panel Reoport已经从WTO官方网页编写的每个案例。

enter image description here

enter image description here

您可以查看上图(或参考

https://www.wto.org/english/tratop_e/dispu_e/dispu_status_e.htm

每个案例都使用“DS XXX”索引,而在下面右侧则表示“Panel Composed”是否还是“正在咨询”。

如果我检查,他们都共享相同的

<p class = "panel-text-simple">

所以我尝试了两个命令:

elem_info = driver.find_element_by_class_name("panel-title-simple")     
elem_info = driver.find_element_by_xpath("//p[@class='panel-title-simple']");

但是他们每个人只给我最多的情况,最近的情况。

我必须找到每个案例的信息,然后应该制作一个for循环来检查该小组是否合成。

我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可以使用下面的XPath获取当前状态为“Panel composed”的所有LI

//li[.//p[contains(.,'Panel composed')]]

从那里你可以得到DS号

.//small

或细节

./p

等等。

答案 1 :(得分:0)

使用find_elements(请注意&#39; s&#39;)。这将返回一个列表,然后您可以循环遍历:

documents = driver.find_elements_by_class_name("panel-title-simple");
for document in documents
    # continue with your code