我正在尝试使用以下结构解析网站:
<div class='MarketGroup'>
<div class='MarketGroup_GroupName'>
<div class='MarketGroup_Name'>Partido</div>
如果你点击第一个div项目会出现一个下拉菜单,所以我想找到那个有孩子的div项目或者(在这种情况下)一个具有属性“MarketGroup Name”和文本值“Partido”的孙子
我的python代码如下:
find_element_by_xpath('//div[.//*[@class="MarketGroup_Name and contains(.,"Partido")]]')
但是我收到错误,因为显然我的语法不是有效的xpath表达式。 那么,这个有效的xpath表达式是什么?
答案 0 :(得分:0)
返回具有文字“Partido”的后代MarketGroup
的所有MarketGroup_Name
。
// div [@ class =“MarketGroup”和descendant :: div [@ class =“MarketGroup_Name”并包含(text(),“Partido”)]]
答案 1 :(得分:0)
XPath中的语法错误
//div[.//*[@class="MarketGroup_Name and contains(.,"Partido")]]
^
是由于缺少关闭"
。
除此之外,您的XPath似乎指定了您想要的内容,但您可能会稍微清理一下:
//div[.//div[@class="MarketGroup_Name" and .="Partido"]]
答案 2 :(得分:-1)
你的xpath缺少一个“,正如其他答案所提到的那样。但是固定的xpath可以找到两个元素:<div class='MarketGroup'>
和<div class='MarketGroup_GroupName'>
,这可能不是你想要的。我猜你可能想要类是MarketGroup的那个,所以结果xpath是:
//div[@class="MarketGroup"][.//div[@class="MarketGroup_Name" and text()="Partido"]]
如果使用上面的xpath找不到元素,可能是由于xmlns。使用这个:
//*[local-name()="div" and @class="MarketGroup"][.//*[local-name()="div" and @class="MarketGroup_Name" and text()="Partido"]]