python - Selenium:如何单击具有相同类名的所有 DIV

标签 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

最佳答案

这样做的问题是,您不能简单地找到所有 div 并逐个单击它们,因为当您返回上一页时,您之前找到的元素已经变得“过时” ”,你需要“重新找到”它们。

我会维护我正在单击的当前 div 元素的索引,并且每次返回主页时,我都会单击div 元素位于索引 + 1 位置。继续此操作,直到用完主页上的所有 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

关于python - Selenium:如何单击具有相同类名的所有 DIV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37776723/

相关文章:

python - 如何改进这个类似尾部的Python代码

Python:如何在每次输出而不是终止时获取子进程的输出?

python - 在python中打印 float

python - 如何在 python selenium 中按类名及其文本定位元素

python - GoTest如何返回 "combined keyword"提取的值?

javascript - Selenium Webdriver 自动完成文本框

python - 在pyqt5的水平布局中正确拉伸(stretch)小部件

python - 如何在python中使用selenium定位四个元素

html - 测试自动化 html 元素选择器。元素 ID 或数据属性

python - Content-Type header 是否适用于 PUT 或 POST 以外的任何 HTTP 动词?