含硒的下拉列表和复选框(python3)

含硒的下拉列表和复选框(python3),python,python-3.x,selenium,automated-tests,selenium-chromedriver,Python,Python 3.x,Selenium,Automated Tests,Selenium Chromedriver,我正在尝试自动填写阿迪达斯的注册信息,但不确定如何选择复选框,尤其是DOB的下拉列表: driver = webdriver.Chrome() driver.get("https://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/MyAccount-Register") 这是不适用于复选框的内容: driver.find_element_by_id('ffCheckbox').click() driver.fi

我正在尝试自动填写阿迪达斯的注册信息,但不确定如何选择复选框,尤其是DOB的下拉列表:

driver = webdriver.Chrome()
driver.get("https://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/MyAccount-Register")
这是不适用于复选框的内容:

driver.find_element_by_id('ffCheckbox').click()
driver.find_element_by_xpath('.//span[@id="consentLabel"]').click() 

我不知道如何完成DOB的下拉列表。

要能够处理目标
您首先需要切换到适当的
iframe

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

driver.switch_to_frame(driver.find_element_by_xpath('//iframe[@class="sso-iframe"]'))
然后,您可以处理所需的下拉列表,如:

driver.find_element_by_xpath("//a[.='DD']").click() # Open drop-down
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.XPATH,'//span[@data-val="1"]'))).click() # select first day
单击复选框:

driver.find_element_by_id('ffCheckbox').click()
driver.find_element_by_xpath('.//span[@id="consentLabel"]').click() 

复选框起作用,但未单击正确的复选框,下拉列表被单击,但表示下拉列表中的元素不可见。选中更新的答案以从下拉列表中选择选项。我也不知道什么是“正确”复选框。只需更改
XPath
以选中精确复选框,因为某些原因,它不会选择月份,但会选择日期和年份。它甚至会打开下拉菜单。您是否每月尝试相同的
XPath
,例如
'//span[@data val=“1”]
和获取
ElementNotVisibleException
?span data val=“…”>1在点(44208)处不可单击。其他元素将收到单击:。。。