python - 循环单击 Python 和 Selenium 上具有相同 CSS_SELECTOR 的所有链接
问题描述
我有以下 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)
解决方案
我怀疑元素状态可能在每次迭代中都发生了变化,所以试试这个,
for i in range(len(events)):
events = driver.find_elements(By.CSS_SELECTOR, ".sport-tennis .event-list .event-column-main")
event[i].click()
time.sleep(1)
driver.find_element(By.CSS_SELECTOR, ".sport-tennis .flex-column .text-truncate").click()
time.sleep(1)