我有一个div,它有一个' message clearfix default'子类为' data-message-id = XX'。我的目标是获得该ID 96375050.我已经尝试了.find_element_by_class_name但是该类是' message clearfix default'由于空间而失败。此外,由于这不是显示的片段,因此也没有附加的CSS。
如何获得96375050?
<div class="message clearfix default" data-message-id="96375050" data-user-id="186772" data-user-login="MAS1271" id="message_96375050" data-ape="messages_96375050">
答案 0 :(得分:2)
您可以使用find_element_by_xpath
获取元素:
elem = driver.find_element_by_xpath('//li[@class="messageli"]//div[@class="message clearfix default"]')
msg_id = elem.get_attribute('data-message-id')
[@class="text"]
使用完全匹配,您可以合并and
&amp; contains
,如:
elem = driver.find_element_by_xpath('//li[@class="messageli"]//div[contains(@class,"message") and contains(@class,"default")]')
答案 1 :(得分:2)
我知道你已经接受了答案,但在这种情况下使用CSS选择器要好得多。如果选择XPath,则执行完整的字符串匹配以查找该类,因此如果更改了类顺序或添加了其他类,则选择器将不再起作用。如果您使用CSS选择器,则顺序无关紧要
msg_id = driver.find_element_by_css_selector("div.message.clearfix.default").get_attribute('data-message-id')
对CSS选择器也有更好的支持,它们比XPath更快。