【问题标题】: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
-
浏览器快照: