Я использую селен и appium для автоматизации мобильного браузера Chrome на телефоне Android.
Я подключил реальное устройство Android через
adb connect {ip адрес мобильного телефона}
Все остальные тесты в браузере Android Chrome на реальном устройстве успешно выполняются. Но при загрузке изображения браузер падает.
Я использую код ниже для загрузки изображения
public class UploadPhotoPage extends TestBase {
// Page Factory Object Repository
@FindBy(id = "file-upload")
WebElement fileUpload;
// Initialising the page object
public UploadPhotoPage() {
PageFactory.initElements(driver, this);
}
// Actions
public void uploadphotos(String imagePath) throws AWTException, InterruptedException {
fileUpload.sendKeys(imagePath);
}
}
Путь к изображению находится на машине с Windows, где appium server и eclipse выполняют тестовые случаи.
Что здесь не так?
Журнал ошибок на сервере appium:
[W3C] Прокси драйвера активен, передача запроса через HTTP прокси
[JSONWP Proxy] Сопоставил '/wd/hub/session/34e405a5-1bad-4711-9e1c-956e2d7391f6/element/0.6272871137575717-18/text' с именем команды 'getText'
[JSONWP Proxy] Проксирует [GET /wd/hub/session/34e405a5-1bad-4711-9e1c-956e2d7391f6/element/0.6272871137575717-18/text] на [GET http://127.0.0.1:8003/wd/hub/session/adb1415c77099095355e619b36dc5e1e/element/0.6272871137575717-18/text] с телом: {}
[JSONWP Proxy] Получил ответ со статусом 200: "{\" sessionId \ ": \" adb1415c77099095355e619b36dc5e1e \ ", \" status \ ": 10, \" value \ ": {\" message \ ": \" ссылка на устаревший элемент : элемент не прикреплен к документу страницы \ n (информация о сеансе: chrome = 70.0.3538.64) \ n (информация о драйвере: chromedriver = 2.42.591088 (7b2b2dca23cca0862f674758c9a3933e685c27d5), платформа = Windows NT 6.1.7601 SP1 x86_64) \ "}} "
[W3C] Обнаружена внутренняя ошибка при выполнении команды: ProxyRequestError: Не удалось передать команду прокси на удаленный сервер. Исходная ошибка: запрос к /wd/hub/session/34e405a5-1bad-4711-9e1c-956e2d7391f6/element/0.6272871137575717-18/text не выполнен
[W3C] в JWProxy.proxy $ (C: \ Users \ chintamanim \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ appium-base-driver \ lib \ jsonwp-proxy \ proxy.js: 182: 13)
[W3C] в tryCatch (C: \ Users \ chints \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ babel-runtime \ Регенератор \ runtime.js: 67: 40)
[W3C] в GeneratorFunctionPrototype.invoke [as _invoke] (C: \ Users \ chints \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ babel-runtime \ Регенератор \ runtime.js: 315: 22 )
[W3C] в GeneratorFunctionPrototype.prototype. (Анонимная функция) [как следующий] (C: \ Users \ chints \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ babel-runtime \ регенератор \ runtime. JS: 100: 21)
[W3C] в GeneratorFunctionPrototype.invoke (C: \ Users \ chints \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ babel-runtime \ Регенератор \ runtime.js: 136: 37)
[W3C] в
[MJSONWP] Соответствует коду ошибки 10 JSONWP к StaleElementReferenceError
[HTTP] <- GET /wd/hub/session/34e405a5-1bad-4711-9e1c-956e2d7391f6/element/0.6272871137575717-18/text 404 95 мс - 2004
[HTTP]
[HTTP] -> GET /wd/hub/session/34e405a5-1bad-4711-9e1c-956e2d7391f6/element/0.6272871137575717-18/text
[HTTP] {}
[W3C] Прокси драйвера активен, передача запроса через HTTP прокси
[JSONWP Proxy] Сопоставил '/wd/hub/session/34e405a5-1bad-4711-9e1c-956e2d7391f6/element/0.6272871137575717-18/text' с именем команды 'getText'
[JSONWP Proxy] Проксирует [GET /wd/hub/session/34e405a5-1bad-4711-9e1c-956e2d7391f6/element/0.6272871137575717-18/text] на [GET http://127.0.0.1:8003/wd/hub/session/adb1415c77099095355e619b36dc5e1e/element/0.6272871137575717-18/text] с телом: {}
[JSONWP Proxy] Получил ответ со статусом 200: "{\" sessionId \ ": \" adb1415c77099095355e619b36dc5e1e \ ", \" status \ ": 10, \" value \ ": {\" message \ ": \" ссылка на устаревший элемент : элемент не прикреплен к документу страницы \ n (информация о сеансе: chrome = 70.0.3538.64) \ n (информация о драйвере: chromedriver = 2.42.591088 (7b2b2dca23cca0862f674758c9a3933e685c27d5), платформа = Windows NT 6.1.7601 SP1 x86_64) \ "}} "
[W3C] Обнаружена внутренняя ошибка при выполнении команды: ProxyRequestError: Не удалось передать команду прокси на удаленный сервер. Исходная ошибка: запрос к /wd/hub/session/34e405a5-1bad-4711-9e1c-956e2d7391f6/element/0.6272871137575717-18/text не выполнен[W3C] в JWProxy.proxy $ (C: \ Users \ chints \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ appium-base-driver \ lib \ jsonwp-proxy \ proxy.js: 182: 13)
[W3C] в tryCatch (C: \ Users \ chints \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ babel-runtime \ Регенератор \ runtime.js: 67: 40)
[W3C] в GeneratorFunctionPrototype.invoke [as _invoke] (C: \ Users \ chints \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ babel-runtime \ Регенератор \ runtime.js: 315: 22 )
[W3C] в GeneratorFunctionPrototype.prototype. (Анонимная функция) [как следующий] (C: \ Users \ chints \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ babel-runtime \ регенератор \ runtime. JS: 100: 21)
[W3C] в GeneratorFunctionPrototype.invoke (C: \ Users \ chints \ AppData \ Local \ Programs \ Appium \ resources \ app \ node_modules \ appium \ node_modules \ babel-runtime \ Регенератор \ runtime.js: 136: 37)
[W3C] в
[MJSONWP] Соответствует коду ошибки 10 JSONWP к StaleElementReferenceError
[HTTP] <- GET /wd/hub/session/34e405a5-1bad-4711-9e1c-956e2d7391f6/element/0.6272871137575717-18/text 404 135 мс - 2004 </p>
Ниже приведены возможности, которые я установил
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("deviceName", "ONEPLUS A5010");
capabilities.setCapability("platformVersion", "8.1.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("browserName", "Chrome");
capabilities.setCapability("deviceId", "XXX.XX.XX.XXX:5555");
capabilities.setCapability("autoGrantPermissions", true);