如何通过检查selenium python中是否已单击复选框来取消选中复选框

2024-04-25 22:17:10 发布

您现在位置:Python中文网/ 问答频道 /正文

单击复选框以及如何取消选中该复选框

domestic=driver.find_element_by_xpath('//*[@id="chkGraphic_0"]')
driver.execute_script("arguments[0].click();",domestic)

Tags: idexecutebydriverscriptelementfindarguments
2条回答

使用execute_script()并不是一种理想的方法来点击复选框来选择/取消选择它。相关的HTML DOM会帮助我们构建一个规范答案。但是,要选择/取消选择复选框,您需要为element_to_be_clickable()导入WebDriverWait,并且可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#chkGraphic_0"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='chkGraphic_0']"))).click()
    
  • 注意:必须添加以下导入:

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

如果要先选中复选框是否已选中,请使用.is_selected()

domestic=driver.find_element_by_xpath('//*[@id="chkGraphic_0"]')
if domestic.is_selected():
    #uncheck
    driver.execute_script("arguments[0].click();",domestic)

相关问题 更多 >