Как снять флажок, проверив, был ли он уже нажат или нет в Селен Python - PullRequest
1 голос
/ 04 ноября 2019

Установлен флажок и как снять этот флажок

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

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

Если вы хотите проверить сначала флажок установлен или нет, используйте .is_selected():

domestic=driver.find_element_by_xpath('//*[@id="chkGraphic_0"]')
if domestic.is_selected():
    #uncheck
    driver.execute_script("arguments[0].click();",domestic)
0 голосов
/ 04 ноября 2019

Использование execute_script() - не идеальный способ установить флажок для выбора / отмены выбора. Соответствующий HTML DOM помог бы нам построить канонический ответ. Однако, чтобы установить / снять флажок , необходимо ввести WebDriverWait для element_to_be_clickable(), и вы можете использовать любое из следующих решений:

  • Использование 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
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...