我在真实的设备上启动应用程序,登陆主屏幕,主屏幕元素没有被ANDROID设备中的appium识别。我试着点击右上角的帮助图标。
注意,在任何主屏幕元素上执行动作是间歇性的
//下面是Home page object screen的构造函数,它在我登录后被调用。
public HomePageObjectsNew(Config testConfig) {
this.testConfig = testConfig;
PlatformName = testConfig.getRunTimeProperty("platformNameMobile");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<MobileElement> abc= MobileActions.findElementsById(testConfig, "frag_home_help_imgview_id");
testConfig.logComment(Integer.toString(abc.size()));
PageFactory.initElements(new AppiumFieldDecorator(testConfig.driver, 5, TimeUnit.SECONDS), this);
}
//*Login Method:*
public HomePageObjectsNew loginFlowUsingPassword() {
swipeWalkthroughScreens();
enterAlreadyExistingEmailID("coios6@yopmail.com");
Browser.wait(testConfig, 2);
MobileActions.waitForVisibility(testConfig, txtFldPassword,
"Password field");
enterPassword();
clickOnLogin();
Browser.wait(testConfig, 4);
return new HomePageObjectsNew(testConfig);
}
//*My test case:*
@Test(description = "Verify successful Login of an existing now merchant using password flow", dataProvider = "GetMobileTestConfig", timeOut = 700000)
public void verifyPaymentRequestButtonIsClickableAfterLogin(Config testConfig) {
try {
LoginSignUpPageObjects loginSignUpPageObjects = new LoginSignUpPageObjects(testConfig);
HomePageObjectsNew obj = loginSignUpPageObjects.loginFlowUsingPassword();
obj.btnHelpScreenHeader.click();
MobileActions.goBack(testConfig);
obj.clickOnHamburgerMenu();
Browser.wait(testConfig, 2);
obj.clickOnHamburgerMenu();
loginSignUpPageObjects.clickOnRequestPayment();
System.out.println("Request Button clicked");
} catch (Exception e) {
testConfig.logFail("verifyPaymentRequestButtonIsClickableAfterLogin failed !!");
e.printStackTrace(System.out);
}
}
**Actual:** Not able to click on Home screen elements
So if i try 10 times only 1 time it works ... NOTE that id's are not dynamic have already confirmed with DEV !!
**Expected:** I should be able to click on home page elements
Appium日志:[MJSONWP(6FBDDB32)]调用AppiumDriver.findElements(),参数:[“id”,“com.payu.payunow:id/frag_home_help_imgview_id”,“6FBDDB32-3EE5-4237-beee-c0496d88e69e”][BaseDriver]此请求的有效定位器策略:xpath,id,类名,可访问性id,-Android uiautomator[BaseDriver]等待条件[AndroidBootstrap]最长5000 ms发送命令到Android:{“cmd”:“ACTION”,“ACTION”:“find”,“params”:{“strategy”:“id”,“选择器”:“com.payu.payunow:id/frag_home_help_imgview_id”,“context”:“”,“multiple”:true}}[AndroidBootstrap][BOOTSTRAP LOG][debug]从客户端获取数据:{“cmd”:“ACTION”,“ACTION”:“find”,“params”:{“strategy”:“id”,“selector”:“com.payu.payunow:id/frag_home_help_imgview_id”,“context”:“”,“multiple”:true}}[AndroidBootstrap][BOOTSTRAP LOG][debug]获取ACTION类型的命令[AndroidBootstrap][BOOTSTRAP LOG][debug]命令操作:find[AndroidBootstrap][BOOTSTRAP LOG][debug]使用“id”wi查找“com.payu.payunow:id/frag_home_help_imgview_id”th上下文ID:“多个:true[AndroidBootstrap][BOOTSTRAP LOG][debug]使用:uiselector[resource_id=com.payu.payunow:id/frag_home_help_imgview_id][AndroidBootstrap][BOOTSTRAP LOG][debug]getElements选择器:uiselector[resource_id=com.payu.payunow:id/frag_home_help_imgview_id][AndroidBootstrap][BOOTSTRAP LOG][debug]为null:(0)[AndroidBootstrap][BOOTSTRAP LOG][debug]getElements tmp选择器:uiselector[instance=0,resource_id=com.payu.payunow:id/frag_home_help_imgview_id][AndroidBootstrap][BOOTSTRAP LOG][debug]找不到元素。正在清除辅助功能缓存并重试。[AndroidBootstrap][BOOTSTRAP日志][debug]使用“id”使用上下文ID:“multiple:true”查找“com.payu.payunow:id/frag_home_help_imgview_id
尝试等待,直到元素被启用。您可以使用WebDriverWait类。wait.until(expectedconditions.ElementToBeclickable(
我正在尝试使用UISelector找到一个位于可见屏幕空间(又名viewport)之外的TextView小部件: 当我尝试与这样的元素交互时,结果是以下消息: 逻辑结论将是元素不存在或者我的定位器策略是错误的。但问题是,当我更改文本以查找可视空间/视口内的元素时,定位器工作得完美无缺。示例: 这是UiSelector和textContains()的工作方式吗?这是另一种解决方案吗? 多谢。
在使用Appium Inspector检查Android应用程序时,上一屏幕中的一些元素也会被检查,并出现在元素层次结构中。 该应用程序基于react native构建。
我使用的是Appium 1.6.5设备:iPod iOS版本:10.3.3 我无法使用Appium inspector识别元素。我点击任何对象,整个框架被选中。我无法唯一地识别每个元素。请参考下图了解问题的实际表示。 请帮我解决这个问题
我正在android的clock应用程序上尝试一段appium自动化代码,但我的代码倾向于跳过滚动逻辑。我还尝试了findelement()和gettext()来标识该元素,但仍然没有成功。代码如下:
自定义对象标识 Appium检查器无法找到其父元素的子元素。