如何从硒的无序列表中选择倒数第二个项目

问题描述

我正在从事硒项目。我要从中抓取的网站有一个类名为unordered list的{​​{1}}。这就是pagination代码的样子

unordered list

在此代码中,我想选择倒数第二个<ul class="pagination"> <li class="a-disabled">←<span class="a-letter-space"></span><span class="a-letter-space"></span>PrevIoUs</li> <li class="a-selected"><a href="...">1</a></li> <li class="a-normal"><a href="...">2</a></li> <li class="a-last"><a href="...">Next<span class="a-letter-space"></span><span class="a-letter-space"></span>→</a></li> </ul> 元素。即。我想选择其中有li的{​​{1}}。

我尝试了这段代码

li

但是显然这是行不通的。我想我必须将2更改为某些内容。不知道如何做到这一点。我该如何实现?

预先感谢

解决方法

您可以使用xpath的last()功能。

WebDriverWait(self.driver,5).until(EC.presence_of_element_located((By.XPATH,"//ul[@class='pagination']/li[last()-1]")))
,

我认为最好的方法是 要选择包含2的列表项,请将xpath与contains函数一起使用。

//ul/li[contains(text(),'2')]

如果您的页面包含更多无序列表,您也可以提及ul的类名。

//ul[@class='pagination']/li[contains(text(),'2')]