【问题标题】:Click on checkbox using selenium python使用 selenium python 单击复选框
【发布时间】:2020-04-11 22:19:27
【问题描述】:

我正在尝试单击此页面上用于过滤文档的复选框 (https://products.mhra.gov.uk/search/?query=zoton&page=1) 我想选中 产品特性总结 (SPC) 和我使用下面的代码不起作用。请帮助我了解如何使其工作。

#navigating to search page
 try :
        elem4 = driver.find_element_by_xpath("//input[@type='checkbox']")
        elem4.click()
        time.sleep(15)

        elem5 = driver.find_element_by_xpath("//button[@type='submit']")
        elem5.click()
        time.sleep(15)

    except:
          pass

    try:
        elem = driver.find_element_by_id('filter-spc')
        elem.click()
    except:
          pass

【问题讨论】:

  • 您是在等复选框出现吗?
  • 请将所有相关代码发布为minimal reproducible example
  • @Sri 我正在等待 15 秒
  • @ggorlen 编辑并添加了更多行
  • except: pass 通常是个坏主意。如果有问题,你可能至少想知道它发生在日志中,如果不让错误导致程序崩溃的话。如果这部分失败了,那么其余的点击也不起作用,所以你不妨让程序崩溃,看看这里到底发生了什么。一个完整/完整的例子会很好。

标签: python xpath selenium-chromedriver


【解决方案1】:

这里有一个解决方案。您可能想要修改提交按钮的 css 选择器,但逻辑就在那里。这对我有用。

url = "https://products.mhra.gov.uk/search/?query=zoton&page=1"

browser = webdriver.Chrome()
browser.get(url)
try:
    element = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.ID, "agree-checkbox"))
    )
    elem = browser.find_element_by_id('agree-checkbox')
    elem.click()
    submit = browser.find_element_by_css_selector("#__next > div > main > div > div > section > div > form > button")
    submit.click()
except:
    print("Not found Agree")

try:
    element = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.ID, "filter-spc"))
    )
    elem = browser.find_element_by_id('filter-spc')
    elem.click()
except:
    print("Not found SPC")

【讨论】:

    猜你喜欢
    • 2019-10-10
    • 2022-01-07
    • 1970-01-01
    • 2017-09-24
    • 2021-12-11
    • 2021-12-23
    • 2020-10-06
    • 2018-10-31
    • 1970-01-01
    相关资源
    最近更新 更多