Я пытаюсь запустить сквозные тесты на реальном устройстве Android для моего проекта Ionic 4 с Protractor и Appium, потому что я использую плагины Cordova для собственных функций.Моя проблема: когда я пытаюсь запустить свои тесты E2E с помощью Appium, приложение запускается на моем устройстве, но затем Appium застревает с вызовом состояния, получающим неожиданный ответ и HTML-страницей, отправленной моим прокси.
Я работаю на виртуальной машине Linux и с прокси, но прокси правильно настроен как на виртуальной машине, так и на npm.Есть ли где-то еще, я должен настроить это?
Вот еще некоторые сведения:
Запуск 'adb devices':
List of devices attached
ce12171ccbeb793b05 device
Файл конфигурации моего транспортира (protractor.conf.js):
let path = require('path');
let wd = require('wd');
let protractor = require('protractor');
let wdBridge = require('wd-bridge')(protractor, wd);
exports.config = {
seleniumAddress: 'http://localhost:4723/wd/hub',
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities:
{
platformName: 'android',
platformVersion: '8.0',
deviceName: 'ce12171ccbeb793b05',
automationName: 'UiAutomator2',
browserName: "",
autoWebview: true,
app: path.join(__dirname, '../platforms/android/app/build/outputs/apk/debug/app-debug.apk'),
},
baseUrl: 'http://localhost:8000/',
onPrepare() {
wdBridge.initFromProtractor(exports.config);
}
};
Журнал Appium, когда он застрял:
[debug] [Chromedriver] Chromedriver version: '2.46.628388'
[debug] [WD Proxy] Matched '/status' to command name 'getStatus'
[debug] [WD Proxy] Proxying [GET /status] to [GET http://127.0.0.1:8000/wd/hub/status] with no body
[WD Proxy] Got an unexpected response: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
[WD Proxy] <html><head>
[WD Proxy] <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[WD Proxy] <title>ERROR: The requested URL could not be retrieved</title>
[WD Proxy] <style type="text/css"><!--
[WD Proxy] /*
[WD Proxy] Stylesheet for Squid Error pa...
[debug] [WD Proxy] Matched '/status' to command name 'getStatus'
[debug] [WD Proxy] Proxying [GET /status] to [GET http://127.0.0.1:8000/wd/hub/status] with no body
[WD Proxy] Got an unexpected response: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
[WD Proxy] <html><head>
[WD Proxy] <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[WD Proxy] <title>ERROR: The requested URL could not be retrieved</title>
[WD Proxy] <style type="text/css"><!--
[WD Proxy] /*
[WD Proxy] Stylesheet for Squid Error pa...
[debug] [WD Proxy] Matched '/status' to command name 'getStatus'
И, наконец, возвращает это:
[Chromedriver] Chromedriver exited unexpectedly with code null, signal SIGTERM
[debug] [Chromedriver] Changed state to 'stopped'
[Chromedriver] Error: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to remote server. Original error: 403 - "<!DOCTYPE html PUBLIC \"-//W3C//...
HTML-код, следующий за ошибкой 403, говорит мне:
ERROR
The requested URL could not be retrieved
The following error was encountered while trying to retrieve the URL: http://127.0.0.1:8200/wd/hub/status
Access Denied.
Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.
Я не знаю, почему прокси-сервер отклоняет запрос статуса с ошибкой 403, и я не знаю, может ли он быть настроен моей стороной или только администратором прокси.Есть ли у вас какие-либо идеи ?Спасибо!