如何制定Xpath表达式以从子节点获取属性?

时间:2014-05-06 03:27:46

标签: python html selenium xpath web-scraping

enter image description here

想要制定一个可以获得属性的Xpath表达式" Style"来自rect标签。 我写了下面的代码但是没有用。

此外,获取Style属性后我只想要rgb();文本。我怎么能这样做?

谢谢

   for element in driver.find_elements_by_css_selector("#workload-analysis-chart > div > svg > g"):
            style = element.get_attribute('style')
            print style

3 个答案:

答案 0 :(得分:3)

表达式不是xpath,而是css选择器。

如下所示更改表达式将打印样式属性:

for rect in root.cssselect('#workload-analysis-chart > div > svg > g > g > rect'):
    style = rect.get('style')
    print style

答案 1 :(得分:3)

您可以使用find_element_by_xpath()xpath找到该元素,然后使用get_attribute()方法获取style属性:

rect = driver.find_element_by_xpath('//div[@id="workload-analysis-chart"]/div/svg/g/g[@data-selected="true"]/rect')
print rect.get_attribute('style')

答案 2 :(得分:0)

尝试使用lxml它有很好的xpath功能

root = lxml.html.fromstring(pagesource)
#get rect with data-eid="10"
rect = root.xpath('//rect[@data-eid="10"]')
r = rect[0] #^returned list of rects
style = r.get("default-fill")