gpt4 book ai didi

java - 在 Selenium Appium 中授予权限后无法找到定位器 "com.android.packageinstaller:id/permission_allow_button"

转载 作者:太空宇宙 更新时间:2023-11-04 10:07:45 25 4
gpt4 key购买 nike

我正在使用 selenium Appium 自动化应用程序 Selenium 更高版本 Appium 1.9.1

每当应用程序启动时,总​​是弹出权限,显示成功,我可以使用自动化点击权限,但在授予权限后,appium 无法在应用程序中找到元素。

如果我在应用程序中手动单击,例如,单击“下一步”按钮,然后再次单击“后退”按钮,那么 appium 代码就可以正常工作。

任何人都可以帮助我如何在不进行手动交互的情况下运行我的脚本

Page class 

public class DriverSignUpPages {

AndroidDriver<MobileElement> driver;
public static final String packageName = "co.wapanda.android.beta";

public DriverSignUpPages(WebDriver driver){
this.driver = (AndroidDriver<MobileElement>)driver;
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}

//-Storing element for pop up related access or permission
@AndroidFindBy(id = "com.android.packageinstaller:id/permission_allow_button")
MobileElement permAlert;

public void allowAccessLocation() {
if(permAlert.isDisplayed()) {
permAlert.click();
} else {

}
}

//-Store signUp locator and performed click action
@AndroidFindBy(id = packageName+":id/btn_signup")
MobileElement signUpButton;

public void clickOnSignUpButton() {
signUpButton.click();
}

//-Store driversignup locator value and performed click action
@AndroidFindBy(id = packageName+":id/btn_driver")
MobileElement driverSignUp;

public void clickOnDriverSignUp() {
driverSignUp.click();
}




------------------------------

Test case class

public class ValidateDriverProcess {

AppLaunch applaunch;
DriverSignUpPages dprocess;
AppiumDriver<MobileElement> driver;

@BeforeMethod
public void launchApplication( ) {
applaunch = new AppLaunch();
driver = (AppiumDriver<MobileElement>) applaunch.launchApplication();
}

@Test
public void validateDriverSignupProcess() {
try {
DriverSignUpPages dprocess = new DriverSignUpPages(driver);
Thread.sleep(5000);
dprocess.allowAccessLocation();
Thread.sleep(5000);
dprocess.clickOnSignUpButton();
Thread.sleep(5000);
dprocess.clickOnDriverSignUp();
Thread.sleep(5000);
dprocess.enterSignUpDetail("test@abc.com", "9898989891", "123456");
Thread.sleep(5000);
dprocess.enterFirstAndLastNameInSignUp("Raj", "");
Thread.sleep(5000);
dprocess.enterVerificationCode("757575");
} catch (Exception e) {
e.printStackTrace();
}

}

@AfterMethod
public void closeApplication() {
driver.quit();
}


}



------------

在appium日志中显示错误

[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result
{"status":7,"value":"No element found"}

not able to find this line
//-Store signUp locator and performed click action
@AndroidFindBy(id = packageName+":id/btn_signup")
MobileElement signUpButton;

最佳答案

有一个open issue with appium:解除警报后,appium 不再检测任何字段。

解决方法:

您可以将应用程序置于后台并再次启动。 driver.runAppInBackground(5);

OR

在打开对话框之前获取屏幕上任何元素的坐标(x,y)与对话框交互(例如选择元素,关闭等)在关闭对话框后点击坐标(x,y):new TouchAction(driver).tap(x,y).perform();

关于java - 在 Selenium Appium 中授予权限后无法找到定位器 "com.android.packageinstaller:id/permission_allow_button",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52738607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com