Python Selenium—尝试在没有文本变量和随机类名的对象中获取文本

Python Selenium—尝试在没有文本变量和随机类名的对象中获取文本,python,selenium-webdriver,Python,Selenium Webdriver,我正在尝试获取写在Discord网站上的最后一条消息,但这是HTML: 我不能只复制类名,因为它没有任何顺序(我不想得到那个特定的消息,类名会随着每个人的变化而变化) 我可以使用“role”通过xpath获取主元素,但我不知道如何获取其中的正确类或该类中的文本 谢谢你的帮助 通过整合re模块,您绝对可以得到它。尝试以下方法: msgs\u list=find\u elements\u by\u class\u name(重新编译(r'message-.+')) 因此,它将查找包含消息-和至少一些

我正在尝试获取写在Discord网站上的最后一条消息,但这是HTML:

我不能只复制类名,因为它没有任何顺序(我不想得到那个特定的消息,类名会随着每个人的变化而变化)

我可以使用“role”通过xpath获取主元素,但我不知道如何获取其中的正确类或该类中的文本


谢谢你的帮助

通过整合
re
模块,您绝对可以得到它。尝试以下方法:

msgs\u list=find\u elements\u by\u class\u name(重新编译(r'message-.+'))

因此,它将查找包含
消息-
和至少一些随机id的类。您必须对其进行测试,可能需要清理一下

注意,您需要重新导入

driver.find_element_by_xpath(".//div[contains(@class,'contents')/h2/div").text
请尝试以下xpath:

//div[contains(@class,'messageContent')]

要查看文本输出,请将其指定给变量:

el_text= driver.find_element_by_xpath("//div[contains(@class,'messageContent') and contains(@class,'markup')]").text
print(el_text)

据我所知,这就是你想要的:

  • 成功找到突出显示的元素:

    element = driver.find_element_by_css_selector(`div[role="listitem"]')
    
  • 从元素获取类

    class_text = element.get_attribute('class')
    

  • 将此html代码粘贴到问题中您的代码尝试在哪里?如果您的问题已解决,请投票/接受答案
    class_text = element.get_attribute('class')