Py学习  »  Python

如何在具有python+selenium的xpath中使用数字序列?

thatpoppy fan • 6 年前 • 1482 次点击  

我觉得这个问题很简单,但我不知道该怎么做。 我有一个从1到8的编号规则的xpath元素。我需要一个接一个地把它们全部打开。

//*[@id="meio"]/div[2]/section/article[1]/h2/span/a[1]
//*[@id="meio"]/div[2]/section/article[2]/h2/span/a[1]
//*[@id="meio"]/div[2]/section/article[3]/h2/span/a[1]
//*[@id="meio"]/div[2]/section/article[4]/h2/span/a[1]
//*[@id="meio"]/div[2]/section/article[5]/h2/span/a[1]
//*[@id="meio"]/div[2]/section/article[6]/h2/span/a[1]
//*[@id="meio"]/div[2]/section/article[7]/h2/span/a[1]
//*[@id="meio"]/div[2]/section/article[8]/h2/span/a[1]

我试着这么做:

while w > 0:
    i = 0
    a = str(i)
    while i < 8:
        i += 1
        driver.find_element_by_xpath('//*[@id="meio"]/div[2]/section/article[" + str(i) + "]/h2/span/a').click()
        driver.refresh()
        #there's more code after this, but I don't think it's necessary.

但是它做了我在第一页需要做的事情,然后又回到第一页,在第一页中一直循环。我不能单击xpath 2或除1之外的任何其他项。我做错什么了?

每次循环开始时,我都需要在xpath中增加一个数字,我该怎么做呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39008
 
1482 次点击  
文章 [ 1 ]  |  最新文章 6 年前
wtee
Reply   •   1 楼
wtee    6 年前

像这样的东西怎么样?

articles_with_links = driver.find_elements_by_xpath('//*[@id="meio"]/div[2]/section/article')

for article in articles_with_links:
    article.find_element_by_xpath('//h2/span/a').click()