无法获得部分或通配符等效的xpath选择器

时间:2017-10-23 11:13:56

标签: python css python-3.x selenium selenium-webdriver

我正试图获得这6个选择器。我似乎只能得到8分。此外,它是动态的,所以它不断变化

//div[@class='sm-CouponLink']//div[@class='sm-CouponLink_Label'] 

页面不断变为

//div[@class='sm-Coupon']//div[@class='sm-CouponLink'] 

其他变种。

理想情况类似//div[@class*='sm-Coup'] 我已经尝试过使用通配符,但我相当肯定使用xpath不支持这个,我不想在这种情况下使用CSS,因为我完全依赖它。 我也尝试过:

//div[starts-with(@class, ''sm-Coupo')]

我在这个页面上:

https://www.bet365.com.au/#/AS/B1/

enter image description here

1 个答案:

答案 0 :(得分:1)

试试xpath:

//div[starts-with(@class, 'sm-CouponLink_Label')]
//div[contains(@class, 'sm-CouponLink_Label')]

//div[@class='sm-CouponLink']/div[starts-with(@class, 'sm-CouponLink_Label')]

或XPath如果你需要包装div:

//div[@class='sm-CouponLink'][div[starts-with(@class, 'sm-CouponLink_Label')]]

或CSS:

div.sm-CouponLink>div[class^='sm-CouponLink_Label']

PS:你的xpath //div[starts-with(@class, ''sm-Coupo')]几乎是正确的,除了它有额外的'引用。这是有效的: //div[starts-with(@class, 'sm-Coupo')]