你好,我是一个新的网页抓取,并一直在尝试使用Selenium在python中抓取一个forum
我试图让Selenium点击“下一步”,直到最后一页,但我不知道如何打破循环。我有问题的定位器:
当我通过部分链接找到“下一个”按钮时,自动单击将继续到下一个线程,例如page 1-〉page 2-〉下一个线程-〉下一个线程的page 1--〉下一个线程的page 2
while True:
next_link = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, "Next")))
next_link.click()
当我通过类名找到下一个按钮时,自动单击将在到达最后一页时单击“上一个”按钮
while True:
next_link = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "prevnext")))
next_link.click()
我的问题是:
1.我应该使用哪个定位器?(按类还是按部分链接或任何其他建议?)
1.如何中断循环,使其在到达最后一页时停止单击?
3条答案
按热度按时间twh00eeo1#
有几件事你需要考虑如下:
click()
,而不是将 expected-conditions 作为presence_of_element_located()
,则需要使用element_to_be_clickable()
。try-catch
**块内调用click()
,以防break
出现异常。k7fdbhmy2#
您可以使用以下代码单击“下一步”按钮,直到到达最后一页,如果该按钮不存在,则中断循环:
ghhaqwfi3#