仅查找结果

时间:2017-12-31 14:47:42

标签: selenium xpath css-selectors

引用this page,我试图获取所有n Markets >个链接,但只有那些后跟赔率的链接。您可能需要滚动浏览几页以查看网站上的示例,或者下面发布了截图。

screenshot of page

从截图中,我想要的链接(以绿色圈出)后面是赔率(用红色圈出)。我不希望链接(标有红色X)后面没有赔率(用黄色圈出)。

是否可以根据旁边是否存在.purple-arrow来获取所有.bettype:nth-child(1) .bet-party元素?

应该足够简单,以下和前面但这不是给予期望。

//*[contains(@href,'/sports-betting/soccer/')]/ancestor::*[contains(@class,'bet-party')]/preceding-sibling::span['other-matches']//*[contains(@href, '/sports-betting/soccer/')]

1 个答案:

答案 0 :(得分:1)

您可以使用XPath执行此操作。

//div[@class='container-fluid'][not(.//div[contains(@class,'no-outcomes')])]//a[@class='purple-arrow']

分解

//div[@class='container-fluid']

找到包含“容器流体”类的DIV。这些是容纳整个HTML匹配行的顶级容器。

[not(.//div[contains(@class,'no-outcomes')])]

它必须没有包含“无结果”类的后代DIV。如果DIV具有此类,则该行没有发布赔率,因此我们不希望这些。

//a[@class='purple-arrow']

最后......返回“紫色箭头”类的链接。

您可以使用$x()在Chrome开发工具中对此进行测试。