Selenium:如何点击具有相同类名的所有DIV

时间:2016-06-12 16:44:50

标签: python selenium

我一直在努力抓取一个通常有10到12个DIV且具有相同类名的网站。单击这些DIV中的任何一个时,它将转到新页面。我想从该页面抓取数据,然后导航回上一页,然后点击下一个div,依此类推。

但我无法弄清楚当我回到上一页时如何点击下一个div?

任何帮助都将不胜感激。

matches = browser.find_elements_by_class_name('ipo-CompetitionBase ')
index = 0
while index <= len(matches):
    matches[index].click()
    browser.back()
    index += 1

1 个答案:

答案 0 :(得分:1)

问题在于,您不能简单地找到所有div并逐个点击它们,因为当您返回上一页时,您之前发现的元素已经变为&#34 ;陈旧&#34;你需要重新找到&#34;它们。

我维护当前div元素的索引我点击了,每当我回到主页面时,我将单击索引+ 1位置的div元素。继续,直到您已用尽主页上的所有div元素。

更像是伪代码:

index = 0
while True:
   divs = browser.find_elements_by_class_name('className')

   try: 
       divs[index].click()
   except IndexError:
       break  # no more elements, exit the loop

   # do smth
   # ...

   browser.back()

   index += 1