网页代码
<a class="seb-pagination__pages-link pages-next" data-params="floorName=next&filterValue=0"><i class="ui2-icon ui2-icon-arrow-right ui2-icon-xs"></i></a>
怎么通过find_element_by_xpath或者其他方法点击到下一页? 求代码
写成‘//*[@class="ui2-icon ui2-icon-arrow-right ui2-icon-xs"]’ 试一下。下面例子说明可获得i节点:
s='''<a class="seb-pagination__pages-link pages-next" data-params="floorName=next&filterValue=0"><i class="ui2-icon ui2-icon-arrow-right ui2-icon-xs">abc</i></a>'''
from lxml import etree
html=etree.fromstring(s)
print(html.xpath('//*[@class="ui2-icon ui2-icon-arrow-right ui2-icon-xs"]/text()'))
#['abc']
需要等加载后且向下滚动才行。
driver.implicitly_wait(20)
footer = driver.find_element_by_class_name("seb-pagination")
driver.execute_script("arguments[0].scrollIntoView();", footer)
#sleep(10)
#matches = WebDriverWait(driver, 30).until(EC.presence_of_all_elements_located((By.XPATH, '//*[@class="ui2-icon ui2-icon-arrow-right ui2-icon-xs"]')))[0]
for i in range(1,5):
sleep(20)
match = WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located(
(By.XPATH, f'//*[@id="root"]/div/div[4]/div/div[1]/a[{i+1}]')))[0]
match.click()
#//*[@id="root"]/div/div[4]/div/div[1]/a[3]
driver.quit()
#开头引入
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
options = webdriver.ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument("--incognito")
options.add_argument('--start-maximized')
options.add_argument('--disable-extensions')
#options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.maximize_window()
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632