【发布时间】:2020-09-24 09:15:11
【问题描述】:
我有以下 CSS_SELECTOR,它在我的页面上出现 2 到 20 次,并且每天都在变化:
event = driver.find_elements(By.CSS_SELECTOR, ".sport-tennis .event-list .event-column-main")
random = event[randint(0, len(event)-1)]
random.click()
当点击它时,它会将我带到另一个页面,该页面的 url 每天都在变化,因此它不是固定的 url。现在,正如您所见,我是通过随机单击该 css_selector 来做到这一点的,但我的问题是:有没有一种方法可以创建一个循环,在不重复的情况下单击所有上述 css_selector?
编辑: 试过了,但只点击了带有该 css_selector 的第一个链接并打开了页面,但是当返回主页时没有点击第二个链接,只是以退出代码 0 结束:
events = driver.find_elements(By.CSS_SELECTOR, ".sport-tennis .event-list .event-column-main")
for event in events:
event.click()
time.sleep(1)
driver.find_element(By.CSS_SELECTOR, ".sport-tennis .flex-column .text-truncate").click()
time.sleep(1)
【问题讨论】:
-
为了解决这个问题,我们通常会得到需要循环的总次数。在枚举循环中我们获取元素并点击元素[i]的索引。
标签: python selenium loops for-loop css-selectors