Триггер реагирует на изменение события из appium - PullRequest
0 голосов
/ 02 мая 2018

Я создаю автоматизированное приложение для гибридного приложения, в котором экран входа в систему представляет собой веб-представление реагирования, и я не могу его контролировать. Кнопка входа в систему отключена, пока что-то не будет введено в поле ввода пароля. Selenium может ввести пароль, но реагирующий не распознает изменение, поэтому никогда не активирует кнопку Я использую библиотеку python для appium.

Это HTML-код для ввода пароля:

<input type="password" class="TextInput--textInput__271qa TextInput-mobile--textInput__jba5n PasswordInput--password__8sQc8 TextInput--hasError__2DrJ8">

А для кнопки Вход в систему:

<button class="Button--strongActionButton__154DS Button--mediumButton__Ga30r SignInScreen-mobile--signInButton__adj3k" type="submit" disabled="">Sign In</button>

Вот так я отправляю текст в поле ввода пароля и нажимаю кнопку входа:

self.driver.switch_to.context(self.driver.contexts[-1])
self.driver.find_element_by_xpath("//input[@type='password']").send_keys("test_user@gmail.com")
self.driver.find_element_by_xpath("//button[@type='submit']").click()

Последнее действие успешно, но кнопка отключена, поэтому она ничего не делает.

Я пытался вызвать события JS из appium, но не повезло. Я также попытался включить кнопку через JS, но она по-прежнему не определяет значение ввода.

Любая помощь приветствуется, спасибо!

1 Ответ

0 голосов
/ 03 мая 2018

Как вы упомянули, кнопка входа отключена до тех пор, пока что-то не будет введено в поле ввода пароля , поэтому, как только вы отправите текст пароля в пароле поле, которое нужно дождаться, чтобы кнопка Вход была активируемой , вызывающей WebDriverWait следующим образом:

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

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@type='submit']"))).click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...