【问题标题】:How do I paginate to the next page in selenium python如何在 selenium python 中分页到下一页
【发布时间】:2021-02-11 05:51:16
【问题描述】:

如何在 selenium python 中分页到下一页?

代码试验:

import os,json,requests, time
from pprint import pprint
from selenium import webdriver
import csv

driver = webdriver.Chrome()

driver.get('https://www.ebay.co.uk/b/Cordless-Drills/184655/bn_9863722?rt=nc&_dmd=1')
time.sleep(0.5)


links = driver.find_elements_by_xpath('//div[@class="s-item__wrapper clearfix"]//a[@class="s-item__link"]')
for link in links:
    print(link.get_attribute('href'))

【问题讨论】:

标签: python selenium-webdriver xpath css-selectors webdriverwait


【解决方案1】:

要分页到下一页,您需要将WebDriverWait 诱导为element_to_be_clickable(),您可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

    driver.get('https://www.ebay.co.uk/b/Cordless-Drills/184655/bn_9863722?rt=nc&_dmd=1')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button#gdpr-banner-accept[aria-label='Accept privacy terms and settings']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li.ebayui-pagination__li.ebayui-pagination__li--selected +li > a"))).click()
    
  • 使用XPATH

    driver.get('https://www.ebay.co.uk/b/Cordless-Drills/184655/bn_9863722?rt=nc&_dmd=1')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@id='gdpr-banner-accept']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@class='ebayui-pagination__li ebayui-pagination__li--selected']//following::li[1]/a"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 浏览器快照:

【讨论】:

    猜你喜欢
    • 2019-05-26
    • 1970-01-01
    • 2019-07-29
    • 2014-07-07
    • 2020-04-02
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多