迭代XPath中的数字

时间:2016-09-30 03:41:44

标签: python html xml selenium xpath

我正在使用Python中的Selenium webdriver来查找要处理的网页上的元素,其方式如下所示:

driver.find_element_by_xpath('//div[@class="gsc-cursor-page" and text()="1"]')

理想情况下,我想浏览该div中的所有文本,text()="1"text()="2",... text()="10"等等。但由于整个xpath是一个字符串,不知怎的,我找不到一种方法来编写迭代for i in range(10)而不破坏内部结构。

我能得到的最接近的是

mypath = '//div[@class="gsc-cursor-page" and text()="' + str(i) + '"]'
next =  driver.find_element_by_xpath(path)

但这也会导致错误。关于如何解决这个问题的任何建议?

2 个答案:

答案 0 :(得分:2)

这个XPath,

//div[@class="gsc-cursor-page" and number() >= 1 and number() <= 10]

将选择指定div的所有@class元素,其值范围为1..10

用于解决OP评论的特定Python / Selenium代码

xp = "//div[@class="gsc-cursor-page" and number() >= 1 and number() <= 10]"

for div in driver.find_elements_by_xpath(xp):
    div.click()

答案 1 :(得分:-1)

不知怎的,我能够通过“position”输入变量进行迭代,而不是使用div的内部文本。感谢您的所有帮助和提示!

driver.find_element_by_xpath('//div[@class="gsc-cursor"]/div[position()='+str(i)+']')