Selenium:获取具有空格的类的div的ID

时间:2017-09-29 23:19:11

标签: python selenium

我有一个div,它有一个' message clearfix default'子类为' data-message-id = XX'。我的目标是获得该ID 96375050.我已经尝试了.find_element_by_class_name但是该类是' message clearfix default'由于空间而失败。此外,由于这不是显示的片段,因此也没有附加的CSS。

enter image description here

如何获得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">

2 个答案:

答案 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更快。