флажок селена не работает в питоне - PullRequest
0 голосов
/ 27 мая 2019

https://agent.loadbook.in/#/login Когда я перехожу к форме регистрации, в форме есть флажок, поскольку я согласен с условием.Это флажок Входной тег.когда я выбираю тег по идентификатору и когда я выполняю щелчок или send_key для отправки его показа, флажок не активируется.

ниже всех Метод не работает

driver.find_element_by_xpath('//div[@class="switch__container"]//input').click()

driver.find_element_by_xpath('//div[@class="switch__container"]//input').send_keys(Keys.ENTER)

driver.find_element_by_xpath('//div[@class="switch__container"]//input').submit()

driver.find_element_by_xpath('//div[@class="switch__container"]//input').send_keys("after")

driver.find_element_by_xpath('//div[@class="switch__container"]//label').click()



driver = webdriver.Chrome(options=chrome_options)
driver.get("https://agent.loadbook.in/#/login")


driver.find_element_by_partial_link_text("Create an account").click()

try:

driver.find_element_by_xpath('//div[@class="switch__container"]//input').click()
# driver.find_element("name","username").send_keys("test")
# driver.find_element("name","email").send_keys("test@test.com")
# driver.find_element("name","phone").send_keys("99999999")
# driver.find_element("name","password").send_keys("12345")

за исключением NoSuchElementException в качестве исключения: печать ("не найдено")

selenium.common.exceptions.ElementNotVisibleException: Сообщение: элемент не взаимодействует

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Кому click() на флажок, связанный с текстом Я согласен с Условиями и положениями и Политикой конфиденциальности Вы должны заставить WebDriverWait для элемента быть активным , и вы можете использовать следующее решение:

  • Кодовый блок:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    # options.add_argument('disable-infobars')
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
    driver.get("https://agent.loadbook.in/#/login")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Create an account"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "label[for='switch-shadow']"))).click()
    
  • Снимок браузера:

Iagree

0 голосов
/ 27 мая 2019

Вам нужно ждать , чтобы элемент появился в DOM, используя функцию Selenium Explicit Wait .

  1. Открыть страницу с помощью WebDriver.get () function

    driver.get("https://agent.loadbook.in/#/login")
    
  2. Нажмите Ссылка «Создать учетную запись»:

    driver.find_element_by_link_text("Create an account").click()
    
  3. Подождите , пока флажок не загрузится и не станет активным:

    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, "switch_div")))
    
  4. Установите флажок:

     driver.find_element_by_class_name("switch_div").click()
    

Дополнительная информация: Как использовать Selenium для тестирования веб-приложений с использованием технологии AJAX

...