繁体   English   中英

如何定位分页select按钮使用Python Selenium

[英]How to locate the pagination select button using Python Selenium

代码试验:

from selenium import webdriver 
from selenium.webdriver.support.ui import Select 
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
import pandas as pd

driver = webdriver.Firefox()

url = r"https://www.nba.com/stats/players/advanced"
driver.get(url) 

select = Select(driver.find_element(By.XPATH, r"/html/body/div[2]/div[2]/div[2]/div[3]/section[2]/div/div[2]/div[2]/div[1]/div[3]/div/label/div/select"))

select.select_by_index(0) 

无论我尝试什么,我都找不到这个完整的 Xpath。我只想让代码识别从第 1 页到所有页面的小按钮,以在单个页面上查看所有玩家统计信息。

我研究过类似的问题,但无法解决。

快照:

快照

当路径似乎不起作用时,开始解决问题的更好方法是在检查器工具中从左到右逐渐删除标签。 通过从您的 xpath 中删除/html/body/div[2]我能够在 HTML 中找到该元素

xpath = "//div[2]/div[2]/div[3]/section[2]/div/div[2]/div[2]/div[1]/div[3]/div/label/div/select"
select = Select(driver.find_element(By.XPATH, xpath))

如果我理解正确的话就是这个

在此处输入图像描述

要识别从第 1 页到所有页面的小按钮以在单个页面上查看所有玩家统计信息和 select网站中的一个选项,您可以使用以下定位器策略

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

driver.get('https://www.nba.com/stats/players/advanced')
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button#onetrust-accept-btn-handler"))).click()
Select(driver.find_element(By.XPATH, "//div[starts-with(@class, 'Pagination')]//div[contains(., 'Page')]//following::div[1]//select")).select_by_index(0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM