Нажмите кнопку после ввода в текстовые поля, используя браузер Android Chrome - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь зайти на сайт: https://201.247.172.70/sslvpn/Login/Login используя последние версии appium и chromedriver, мой код выглядит следующим образом:

DesiredCapabilities caps = new DesiredCapabilities ();
caps.setCapability ("deviceName", "My Phone");
caps.setCapability ("udid", "4df1b558054c9fef");
caps.setCapability ("platformName", "Android");
caps.setCapability ("platformVersion", "4.3");
caps.setCapability ("browserName", "Chrome");
caps.setCapability ("noReset", "true");

System.setProperty ("webdriver.chrome.driver", "C: \\ selenium_drivers \\ chromedriver.exe");
try {
driver = new AndroidDriver <MobileElement> (new URL ("http://127.0.0.1:4723/wd/hub"), caps);

} catch (MalformedURLException e) {
System.out.println (e.getMessage ());
}
driver.get ("https://201.247.172.70/sslvpn/Login/Login");
driver.findElement (By.id ("userName")). sendKeys ("user");
driver.findElement (By.id ("passwordDisplayed")). sendKeys ("pass");
driver.findElement (By.id ("LoginButton")). click ();

Когда я нажимаю, он отвечает, что его не существует. Но визуально контроль наблюдается, даже если он сфокусирован на поле. Также наблюдается использование UI Automator Viewer.

Несмотря на это, я попытался использовать следующие альтернативы:

Скрыть клавиатуру после ввода текста в поле ввода

driver.hideKeyboard ();

Очистите прожекторы с помощью JS

JavascriptExecutor executor3 = (JavascriptExecutor) driver;
executor3.executeScript ("document.activeElement.blur ();");

Измените масштаб сайта на «force», чтобы увидеть элемент управления.

JavascriptExecutor executor2 = (JavascriptExecutor) driver;
executor2.executeScript ("document.body.style.zoom = '50% ';");

Напечатайте код, чтобы подтвердить, что есть

System.out.println (driver2.getPageSource ());
Where the button is observed:
<! - Submit button ->
<tr>
<td id = "LoginButtonTD" align = "right">
<div id = "submitDiv">
<input type = "submit" id = "LoginButton" name = "Login" value = "Sign In" align = "absmiddle" class = "butt" />
</ div>
</ td>
</ tr> <! - submit button ->

Я также использовал следующее предложение

driver.findElementByXPath("//android.widget.Button[contains(@text,'Sign In')]").click();

Хотя контроль существует, он его не берет.

Использование браузера ПК работает без проблем, но мне нужно из мобильного браузера (Android).

введите описание изображения здесь

1 Ответ

0 голосов
/ 13 июня 2019

4.4.2 - это очень старая версия Android.Если вы используете любую версию ниже 6.0, то вам нужно переключиться на WEBVIEW и выполнить действия.

Если вы используете версию 6.0 или выше, вам не нужно переключаться на WEBVIEW, Android UiAutomator позаботится об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...