【问题标题】:Dropdown and checkboxes with Selenium (python3)Selenium(python3)的下拉菜单和复选框
【发布时间】:2017-01-24 12:29:41
【问题描述】:

我正在尝试在 adidas 上自动填写注册信息,但不确定如何选择复选框,尤其是 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()

我不知道如何完成 DOB 的下拉菜单。

【问题讨论】:

    标签: python python-3.x selenium automated-tests selenium-chromedriver


    【解决方案1】:

    为了能够处理目标<fieldset>,您首先需要切换到适当的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_xpath('.//span[@id="consentLabel"]').click() 
    

    【讨论】:

    • 复选框有效,但没有点击正确的复选框,下拉菜单被点击,但说下拉菜单中的元素不可见。
    • 检查更新的答案以从下拉列表中选择选项。我也不知道什么是“正确”复选框。只需更改 XPath 以检查确切的复选框
    • 由于某种原因它不会选择月份,但会选择日期和年份。它甚至会打开下拉菜单。
    • 您是否在一个月内尝试相同的XPath,例如'//span[@data-val="1"]' 并获得 ElementNotVisibleException?
    • span data-val="...">1 在点 (44, 208) 不可点击。其他元素会收到点击:

      ...

    猜你喜欢
    • 2014-05-29
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2017-05-14
    • 1970-01-01
    相关资源
    最近更新 更多