ссылка на всплывающее изображение местоположения Я пытаюсь выполнить сценарии автоматизации (Appium + Java + TestNG / Junit) на Amazon DeviceFarm, но во время выполнения сценарии не смогли выполнить какое-либо действие ((Access / Deny ) во всплывающем окне «Разрешение на местоположение». Не удалось увидеть журналы ошибок в консоли. Я использовал обычную операцию click (), а также функцию alert (). В этом случае ничего не работает.
Пожалуйста, помогите мне. Ниже приведен фрагмент кода, который я пробовал ..
WebDriverWait wait = new WebDriverWait(android, 5); wait.until(ExpectedConditions.alertIsPresent()); driver.switchTo().alert().dismiss(); }catch(Throwable t) { System.out.println("Not an alert popup or alert is not present.."); driver.findElement(By.id("idofthelocator")).click(); }
К сожалению, cap.setCapability(AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS, "true"); у меня тоже не сработало. Итак, я попытался найти локаторы всплывающего окна, как обычно, и затем щелкнуть по нему, и это сработало как шарм. Не могли бы вы также попробовать найти локаторы и нажать на кнопку при необходимости. Ниже код работает в моем случае:
cap.setCapability(AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS, "true");
`//Location service pop up @FindBy(id ="com.android.packageinstaller:id/dialog_container") public WebElement locationPopup; //Location service allow button @FindBy(id = "com.android.packageinstaller:id/permission_allow_button") public WebElement locationPopupAllowButton; WebDriverWait wait = new WebDriverWait(driver, 20); wait.until(ExpectedConditions.visibilityOf(locationPopup)); locationPopupAllowButton.click();`
Надеюсь, это поможет:)
В тестах Android Appium можно отключить всплывающие окна с разрешениями, установив для autoGrantPermission значение true. Эта возможность оценивает приложение на наличие необходимых ему разрешений и запускает команду adb для предоставления доступа к приложению. Вот код в проекте Appium, который делает это:
autoGrantPermission
https://github.com/appium/appium-android-driver/blob/959e07d84dc9d09a11735872259ac87511d03b85/lib/android-helpers.js#L334
https://github.com/appium/appium-adb/blob/e6bdc234e7dcf61e0252aad3ac7ab47491fe3720/lib/tools/adb-commands.js#L186
Можете ли вы попробовать эту возможность и сообщить нам, если это поможет?
В тестах iOS Appium функция autoGrantPermission НЕ работает с версией Appium ниже 1.9.1, поскольку через API Apple нет способа предсказать необходимые разрешения или принять их. Обходной путь - либо найти элемент вручную, распечатав исходный код страницы и проверив его на лету, либо использовать следующие строки для использования методов селена:
driver.switchTo().alert().accept(); driver.switchTo().alert().dismiss();
В более поздних версиях Appium были внесены изменения для использования возможности autoGrantPermission, действительной для тестов iOS. Вот PR для этого запроса
https://github.com/appium/appium-xcuitest-driver/commit/f5267acab3bc9285161397fa19a8daf60ae0c6ae
Можете ли вы сообщить нам, какую версию Appium вы используете в этом случае, и предоставить некоторые из журналов сервера Appium от запуска в Device Farm и вашего локального выполнения?