我正在使用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)
但这也会导致错误。关于如何解决这个问题的任何建议?
答案 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)+']')