Я пытаюсь зайти на сайт: 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).
введите описание изображения здесь