我刚刚开始在硒中工作并陷入困境并需要帮助。 这是我的HTML。我正在使用python selinium
<div id="d3_tree">
<svg>
<g>
<g class="node vm node_pe">
<image class="mainNode" xlink:href="images/edge.png"> </image>
<image xlink:href="images/gate.png"></image>
</g>
<g class="node vm node_pe">
<image class="mainNode" xlink:href="images/edge.png"> </image>
<image xlink:href="images/gate.png"></image>
</g>
</g>
</svg>
</div>
我想获取所有vm node_pe的图像标记,以便我可以检查哪个节点有图像。
这些是我尝试使用的xpath,其中我是xpath上的循环。
"//div[@id='d3_tree']/*[name()='svg']/*[name()='g']/*[name()='g["+str(i)+"]']/*[name()='image[2]']"
在xpath之上返回NONE
"//div[@id='d3_tree']/*[name()='svg']/*[name()='g']/*[name()='g["+str(i)+"]']"
返回1个元素,但无法获取任何属性。
"//*[contains(@class, 'node vm node_pe')]"
返回所有元素,但get_attribute(&#34; innerHTML&#34;)返回NONE
任何帮助将不胜感激 感谢
答案 0 :(得分:1)
这个XPATH应该可以工作:
//*[@id="d3_tree"]/svg/g/g/*[contains(@class, 'mainNode')]/@xlink:href
或者你可以这样做:
images = WebDriverWait(driver, 2).until(lambda driver: driver.find_elements_by_css_selector('#d3_tree image.mainNode'))
for image in images:
print(image.get_attribute('xlink:href'))
检查节点是否有图像,可以检查属性是否为空。
if(image.get_attribute('xlink:href') is None):
print("attribute is none")