当前位置: 首页 > 知识库问答 >
问题:

Appium无法使用UiSelector在屏幕外定位元素

家西岭
2023-03-14

我正在尝试使用UISelector找到一个位于可见屏幕空间(又名viewport)之外的TextView小部件:

@AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"CFT\")")
private MobileElement labelCFT;

当我尝试与这样的元素交互时,结果是以下消息:

org.openqa.selenium.NoSuchElementException: Can't locate an element 
by this strategy: By.chained({By.AndroidUIAutomator: 
new UiSelector().textContains("CFT")})

逻辑结论将是元素不存在或者我的定位器策略是错误的。但问题是,当我更改文本以查找可视空间/视口内的元素时,定位器工作得完美无缺。示例:

@AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"loans\")")
private MobileElement labelCFT;
public void whatText() {
    System.out.println("Text of the label: " + labelCFT.getText());
}

这是UiSelector和textContains()的工作方式吗?这是另一种解决方案吗?

多谢。

共有1个答案

贝凯
2023-03-14

我在自动化方面也遇到过类似的问题。我找到的唯一方法是向上或向下滚动,直到元素在屏幕上可见,然后通过“name”访问元素。您可以使用以下命令进行滚动。

Driver.FindElementByAndroidUIAutomator(“new UiScrollable(new UiSelector()).ScrollInToView(text(\”your element\“));”);

当您想要的元素在屏幕上可见后,您就可以轻松地访问该元素。

 类似资料:
  • Appium inspector无法找到iOS测试应用程序的集成ApplePay屏幕的任何元素。这个问题发生在iOS 11上的1.7.1应用程序上。 用于构建苹果支付的控制器是PKPaymentAuthorizationController。 用iOS10和1.6.5 appium尝试了同样的操作,在那里我可以定位元素。

  • 我在真实的设备上启动应用程序,登陆主屏幕,主屏幕元素没有被ANDROID设备中的appium识别。我试着点击右上角的帮助图标。 注意,在任何主屏幕元素上执行动作是间歇性的 //下面是Home page object screen的构造函数,它在我登录后被调用。 Appium日志:[MJSONWP(6FBDDB32)]调用AppiumDriver.findElements(),参数:[“id”,“c

  • 在使用Appium Inspector检查Android应用程序时,上一屏幕中的一些元素也会被检查,并出现在元素层次结构中。 该应用程序基于react native构建。

  • 我是Appium的新手,一直在尝试将Android的转换计算器应用程序自动化。试图查找EditText元素时,我收到错误“org.openqa.selenium.NoSuchElementException:使用给定的搜索参数无法在页面上找到元素”。使用Appium 1.0.0版和Android 4.3 以下是我的代码: 甚至按ID查找也不起作用。请让我知道我在这里做错了什么,或者如果我需要提供更

  • 无法使用appium在我的ios应用程序屏幕上滑动。 我正在使用appium 1.3.1和iso 8 iphone 6模拟器。 我的ios屏幕分为两个屏幕,上面有图像,下面有数据。。。 在设备上,我们可以在任何地方滑动,但不能使用appium 我试图运行Appium 1.3.1iOSSDK 8.1(Xcode 6.1)

  • 我有一个粘性导航栏,它有几个列表元素,每个元素都包含href元素。当我试图定位元素时,我得到了错误。以下是我的HTML代码: 我想通过Webdriver定位Academic,我遇到这样的错误无法定位元素。