我怀疑我在这个问题上说得是否清楚,但我想得到一个人通过Discord(网络)发送的最后一条信息。问题是,当使用web inspector尝试获取消息的唯一属性时,我注意到其他每条消息都具有相同的类,并且没有其他属性(如类、id等)可以使用。我对Selenium和HTML还不熟悉,所以我知道的不多
假设我有两条消息。第一个说“你好”,第二个说“再见”。当我键入此项时:
message = self.driver.find_element_by_xpath("//div[contains(concat(' ', normalize-space(@class), ' '), ' markup-2BOw-j containerCozy-336-Cz markupRtl-3M0hmN ')]")
我得到“hello”,因为这两条消息共享同一个类markup-2BOw-j containerCozy-336-Cz markupRtl-3M0hmN
,显然该方法会选择第一个匹配的类
我已经看过其他类似的问题,但是消息是未知的,所以我不能在find_element_by_xpath
方法的末尾使用contains
,也不能使用[position()=2]
,因为我不知道消息的编号
有办法吗
您可以使用
find_elements_by_xpath
获取与定位器匹配的所有元素的列表,并获取该列表上的最后一项顺便说一下,您可以将
xpath
简化为或者改用
css_selector
使用
last()
:使用find_elements\u by_xpath执行此操作。它将返回匹配WebElements的列表。在此之后,您可以使用list[-1]访问最后一个元素
Docs
相关问题 更多 >
编程相关推荐