Как я могу автоматизировать взаимодействие с мобильным веб-браузером на реальном устройстве Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как я могу автоматизировать взаимодействие с мобильным веб-браузером на реальном устройстве Android?

Сообщение Anonymous »

Я пытаюсь автоматизировать некоторые рутинные административные задачи на моем WiFi-маршрутизаторе Archer AX55 с помощью Selenium WebDriver, который имитирует взаимодействие пользователя через веб-интерфейс роутера (к сожалению, этот роутер не поддерживает SSH, REST или аналогичный API). который я мог бы использовать для сценариев в качестве альтернативы). Когда я запускаю следующий фрагмент Java-кода на своей настольной системе Windows, все работает нормально:

Код: Выделить всё

package org.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.support.ui.Wait;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.time.Duration;

public class SeleniumDriver {
public static void main(String[] args) throws InterruptedException {

// compatible with Selenium 4.24.0
FirefoxOptions options = new FirefoxOptions();
options.addArguments("-headless");
WebDriver driver = new FirefoxDriver(options);

// logging in on the router web page
driver.get("http://192.168.0.1/webpages/index.html#/login");
Wait wait = new WebDriverWait(driver, Duration.ofSeconds(5));
WebElement password = wait.until(webDriver -> driver.findElement(By.xpath("//input[@type='password']")));
WebElement loginBtn = wait.until(webDriver -> driver.findElement(By.xpath("//button[@class='login-btn']")));
password.sendKeys("");
loginBtn.click();
wait.until(webDriver -> driver.findElement(By.xpath("//div[@data='advancedTopMenuBtn']")));

// continue interaction

driver.quit();
}
}
Однако при встраивании того же фрагмента кода в класс MainActivity и запуске его с моего телефонного устройства Android я получаю такую ​​ошибку: «java.lang.RuntimeException : Невозможно найти свободный порт по адресу org.openqa.selenium.net.PortProber.findFreePort(PortProber.java:61)". Переход на ChromeDriver не помогает.
Не удалось найти решение этой проблемы, я пришел к выводу, что Selenium просто не предоставляет мобильные драйверы для запуска автономных автоматических сценариев, упакованных как приложения на реальном устройстве Android. Итак, вопрос тот же, что и в названии этой темы: как я могу автоматизировать взаимодействие мобильного веб-браузера на реальном устройстве Android? Подскажите, пожалуйста, возможные решения этой проблемы (если они существуют).

Подробнее здесь: https://stackoverflow.com/questions/790 ... oid-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»