#c# #selenium #appium-android
#c# #селен #appium-android
Вопрос:
Я использую c # и Appium Selenium для автоматизации эмулятора Android, и столкнулся с проблемой, что поиск элементов занимает слишком много времени, я пробовал на устройстве, это то же самое. Может ли кто-нибудь помочь мне с этим, пожалуйста?
Возможность:
appiumOptions.AddAdditionalCapability("deviceName", "emulator");
appiumOptions.AddAdditionalCapability("platformName", "Android");
appiumOptions.AddAdditionalCapability("platformVersion", "10.0");
appiumOptions.AddAdditionalCapability("appPackage", "com.app");
appiumOptions.AddAdditionalCapability("appActivity", "com.app.MainActivity");
appiumOptions.AddAdditionalCapability("automationName", "UiAutomator2");
appiumOptions.AddAdditionalCapability("app", ConfigReader.GetSetting("app"));
//appiumOptions.AddAdditionalCapability("autoGrantPermissions", true);
//appiumOptions.AddAdditionalCapability("allowSessionOverride", true);
appiumOptions.AddAdditionalCapability("disableWindowAnimation", true);
appiumOptions.AddAdditionalCapability("waitForQuiescence", false);
Драйвер:
public static AndroidDriver<AndroidElement> _driver;
_driver = new AndroidDriver<AndroidElement>(new Uri("http://localhost:4723/wd/hub"), appiumOptions, TimeSpan.FromSeconds(300));
Элемент:
public AndroidElement Usernameinputbox => _driver.FindElementByAccessibilityId("username-IconInput");
Usernameinputbox.SendKeys(username);
Согласно журналу сервера Appium, он потратил много времени на поиск элементов. Введите имя пользователя в качестве примера:
[WD Proxy] Matched '/element' to command name 'findElement'
[WD Proxy] Proxying [POST /element] to [POST http://127.0.0.1:8202/wd/hub/session/733a0a99-27a5-418a-8b3b-1219d55310ab/element] with body: {"strategy":"accessibility id","selector":"username-IconInput","context":"","multiple":false}
[WD Proxy] Got response with status 200: {"sessionId":"733a0a99-27a5-418a-8b3b-1219d55310ab","value":{"ELEMENT":"907853d0-a3e1-4587-8978-3e7721cdff48","element-6066-11e4-a52e-4f735466cecf":"907853d0-a3e1-4587-8978-3e7721cdff48"}}
[W3C (ad8951a0)] Responding to client with driver.findElement() result: {"element-6066-11e4-a52e-4f735466cecf":"907853d0-a3e1-4587-8978-3e7721cdff48","ELEMENT":"907853d0-a3e1-4587-8978-3e7721cdff48"}
[HTTP] <-- POST /wd/hub/session/ad8951a0-6ca8-4687-8b1d-50b8f691e971/element 200 1442 ms - 137
[HTTP]
[HTTP] --> POST /wd/hub/session/ad8951a0-6ca8-4687-8b1d-50b8f691e971/element/907853d0-a3e1-4587-8978-3e7721cdff48/value
[HTTP] {"text":"name","value":["n","a","m","e"]}
[W3C (ad8951a0)] Calling AppiumDriver.setValue() with args: [["n","a","m","e"],"907853d0-a3e1-4587-8978-3e7721cdff48","ad8951a0-6ca8-4687-8b1d-50b8f691e971"]
[WD Proxy] Matched '/element/907853d0-a3e1-4587-8978-3e7721cdff48/value' to command name 'setValue'
[Protocol Converter] Added 'value' property ["n","a","m","e"] to 'setValue' request body
[WD Proxy] Proxying [POST /element/907853d0-a3e1-4587-8978-3e7721cdff48/value] to [POST http://127.0.0.1:8202/wd/hub/session/733a0a99-27a5-418a-8b3b-1219d55310ab/element/907853d0-a3e1-4587-8978-3e7721cdff48/value] with body: {"elementId":"907853d0-a3e1-4587-8978-3e7721cdff48","text":"name","replace":false,"value":["n","a","m","e"]}
[WD Proxy] Got response with status 200: {"sessionId":"733a0a99-27a5-418a-8b3b-1219d55310ab","value":null}
[W3C (ad8951a0)] Responding to client with driver.setValue() result: null
[HTTP] <-- POST /wd/hub/session/ad8951a0-6ca8-4687-8b1d-50b8f691e971/element/907853d0-a3e1-4587-8978-3e7721cdff48/value 200 50960 ms - 14
[HTTP]
[HTTP] --> POST /wd/hub/session/ad8951a0-6ca8-4687-8b1d-50b8f691e971/element
Ответ №1:
Я нашел после добавления appiumOptions.AddAdditionalCapability («fullReset», true); только экран входа в систему стал медленным, другие экраны теперь работают нормально.