首页 > 解决方案 > 如何在silenium中获取下一页?

问题描述

我正在使用 python 中的 selenium,我想抓取所有页面,但我遇到了麻烦:这是我要单击的元素: 在此处输入图像描述

我正在使用以下代码:

link=driver.find_element_by_link_text ('2')
link.click() 

但它会点击另一个元素

Deos是否存在另一种获取下一页的方法?

标签: pythonseleniumselenium-webdriver

解决方案


首先,你的元素看起来像你试图点击的元素与另一个元素重叠,所以你需要等待它变得可点击或其他元素消失:

el = WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH,//div[@id="pagination_wrapper"]//li[@value="1"])))

或者

WebDriverWait(driver, LONG_TIMEOUT
        ).until_not(EC.presence_of_element_located((By.XPATH,"//div[@class='close_cookie_alert']")))

就像您可以找到所有元素一样:

link1 = driver.find_element_by_xpath('//div[@id="pagination_wrapper"]//li[@value="1"]')

link2 = driver.find_element_by_xpath('//div[@id="pagination_wrapper"]//li[@class="2"]')

link3 = driver.find_element_by_xpath('//div[@id="pagination_wrapper"]//li[contains(text(),"text of the third element")]')

如果通常的点击不起作用,请尝试通过 javascript 使用点击,如下所示:

driver.execute_script("arguments[0].click();", link1)

或者,只需移动到下一页:

 driver.get('new_page')

推荐阅读