我试图获取所有以某些东西开头的xpath,但是当我测试它时,它说我的xpath无效。
这是我的xpath:
xpath = "//*[contains(@id,'ClubDetails_"+ str(team) +"']"
我打印时输出的内容:
//*[contains(@id,'ClubDetails_1']
这是HTML:
<div id="ClubDetails_1_386" class="fadeout">
<div class="MapListDetail">
<div>Bev Garman</div>
<a href="javascript:DoMailTo('armadaswim@aol.com')">armadaswim@aol.com</a>
</div>
<div class="MapListDetail">
<div>Rolling Hills Country Day School</div>
<div>26444 Crenshaw Blvd</div>
<div>Rolling Hills Estates, CA 90274</div>
</div>
<div class="MapListDetailOtherLocs_1">
<div>This club also swims at other locations</div>
<a href="javascript:ShowOtherLocs(386,'La Mirada Armada')"><span class="show_them_link">show them...</span></a>
</div>
</div>
我错过了什么?
答案 0 :(得分:0)
一种替代方法是使用模式来匹配以一些文本开头的ID,并将所有这些元素放在列表中,然后逐个迭代列表,并检查条件是否该元素的id属性包含您想要的团队。< / p>
您可以在CSS选择器中匹配模式,如下所示:
div[id^='ClubDetails_']
这就是xpath中的方式:
//div[starts-with(@id, 'ClubDetails_')]
代码示例:
expectedid = "1_386"
clubdetails = driver.find_elements_by_css_selector("div[id^='ClubDetails_']")
for item in clubdetails:
elementid = item.get_attribute('id')
expectedid in elementid
// further code