如何为Selenium Webscrape找到更具描述性的XML路径?

时间:2018-06-30 19:59:17

标签: python xml selenium

我正在使用Selenium构建网站抓取工具,我想“点击”下图中突出显示的div。

Website's HTML

我当前的代码(有效,但描述性不强)是:

button = driver.find_element_by_xpath("//div/div/div/div/div/div/div/div[5]/div[8]")
button.click()

我很高兴它能起作用,但是它感觉很脆弱,因为我仅通过索引访问div,而没有任何其他识别功能。是否有一种方法,至少对于最后一个div,可以通过跨度内的文本指定选择?选择包含跨度为文本“ Grandmaster”的div的语法是什么?

值得注意的是,这是任何“ filter-group”中唯一包含文本“ Grandmaster”的div。有没有一种方法可以专门选择此div,而无需列出所有嵌套的div(就像我在上面的代码中所做的那样)?

任何其他使XML路径的代码更健壮的想法都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

  

选择包含跨度为“ Grandmaster”文本的div的语法是什么?

语法为:

driver.find_element_by_xpath("//*[contains(text(), 'Grandmaster')]")

答案 1 :(得分:1)

  

选择包含跨度的div的语法是什么   文字“大师”?

您可以使用以下/** * Returns a power of two size for the given target capacity. */ static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1; }

xPath

您可以获得here的更多信息。