我正在做一个个人项目,试图使用selenium从网站上获取我的本地团队的结果.该网站有三个下拉列表,目前我很乐意更改其中一个.当我进入页面时,下面的代码单击拒绝cookies,这就是WebDriver行所做的.我得到了'下拉',然后一个错误,没有这样的元素存在.我try 了CSS\u Select 器、XPATH和所有其他选项,但都没有成功.我只是一个新手,所以这可能是我错过的一些简单的东西,但我已经阅读了很多以前的论坛类似的问题和答案没有为我工作.

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 selenium.webdriver.support.ui import Select
import time

driver = webdriver.Firefox()
driver.get("https://www.leinsterrugby.ie/domestic-rugby/domestic-fixtures-results/")

time.sleep(3)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='onetrust-reject-all-handler']"))).click()
time.sleep(3)

dropdown=Select(driver.find_element(By.XPATH,value='//*[@id="groups_data"]')
time.sleep(5)
dropdown.select_by_value('5756')

driver.quit() # close browser

推荐答案

下拉选项为101102103104的元素在<iframe>范围内,因此您必须:

  • 为所需的frame to be available and switch to it诱导WebDriverWait.

  • 为所需的element to be clickable诱导WebDriverWait.

  • 您可以使用以下Locator Strategies个选项之一:

    • 使用CSS_SELECTOR:

      driver.get('https://www.leinsterrugby.ie/domestic-rugby/domestic-fixtures-results/')
      WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[src='https://shared2.sportsmanager.ie/~leinsterrugby/']")))
      Select(WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select[name=user]")))).select_by_value('7183')
      
    • 使用XPATH:

      driver.get('https://www.t-online.de/themen/e-mail')
      WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@src='https://shared2.sportsmanager.ie/~leinsterrugby/']")))
      Select(WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//select[@name='user']")))).select_by_value('7183')
      
  • Note:您必须添加以下导入:

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

leinsterrugby

Python相关问答推荐

根据多列和一些条件创建新列

Flask主机持续 bootstrap 本地IP| Python

在Windows上启动新Python项目的正确步骤顺序

如何在Python中使用ijson解析SON期间检索文件位置?

即使在可见的情况下也不相互作用

如何让剧作家等待Python中出现特定cookie(然后返回它)?

如果值不存在,列表理解返回列表

Python库:可选地支持numpy类型,而不依赖于numpy

PMMLPipeline._ fit()需要2到3个位置参数,但给出了4个位置参数

使用@ guardlasses. guardlass和注释的Python继承

计算组中唯一值的数量

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

使用groupby Pandas的一些操作

Pre—Commit MyPy无法禁用非错误消息

joblib:无法从父目录的另一个子文件夹加载转储模型

如何排除prefecture_related中查询集为空的实例?

导入错误:无法导入名称';操作';

Python避免mypy在相互引用中从另一个类重定义类时失败

无法在Spyder上的Pandas中将本地CSV转换为数据帧

如何在FastAPI中替换Pydantic的constr,以便在BaseModel之外使用?'