首页 > 解决方案 > 我需要使用 selenium 或 Beautiful Soup 访问下一页

问题描述

我想我已经尝试了所有的 .click() .submit... 所有不同类型的东西,但它没有做任何事情

当我尝试访问下一页时出现的内容如下,因为不是按钮或出现的网站我不知道该怎么做;所有页面中唯一变化的是值中的数字,这里出现 3

<ul class="pagination">
     <li><span onclick="document.lisarq.pagina.value=3; document.lisarq.submit(); " onmouseover="this.style.cursor='pointer'" style="cursor: pointer;">3</span></li>
</ul>

在这种情况下,我唯一想做的就是访问下一页是 4Thanks!

标签: pythonseleniumxpathcss-selectorswebdriverwait

解决方案


由于该元素是启用JavaScript的元素,因此要click()访问第 4 页,您必须诱导WebDriverWait并且element_to_be_clickable()您可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "ul.pagination>li>span[onclick*='4']"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='pagination']/li/span[contains(@onclick, '4') and text()='4']"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

推荐阅读