appium - Appium 桌面记录器使用 Xpath 而不是 Id
问题描述
我正在使用 Appium DeskTop 探索我的本机应用程序。对于输入字段,Appium Desktop 在“按选择器窗口查找”中显示了一个 Id 和一个 XPath 表达式。
当我将 Sendkeys 操作记录到此输入字段时,Appium DeskTop 在记录器窗口中显示 XPath 表达式用于定位元素而不是 Id。这不是我所期望的,我期望 Id 用于定位元素。
我尝试在我的测试程序中使用 Id 来定位元素,这是给出的,当显式等待元素的可见性时,请参阅下面的 C# 代码:
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("companyname")));
IWebElement bedrijf = (IWebElement)driver.FindElementById("companyname");
bedrijf.Click();
bedrijf.SendKeys("IBM");
然后出现以下异常:
OpenQA.Selenium.NoSuchElementException
什么样的 ID 在这里展示 Appium Desktop?
解决方案
您需要使用资源 ID。对于原生 android 应用程序,通常使用 id 属性作为resource-id。
IWebElement bedrijf = (IWebElement)driver.findElement(By.xpath("//android.widget.EditText[@resource-id='companyname']"))
推荐阅读
- java - JVM LinkageError 和 Signature 区别
- angular - Angular 没有剪贴板的提供者
- python - Python 中的自定义错误
- c# - Xamarin XfxComboBox Show suggestion items on focus
- r - 计算R中数据表行中的唯一值
- java - Websphere 9 中 Java ear-file 的 Java.lang.LinkageError
- python - using 1's in the arrays to make a shape like '+' using numpy in python
- java - Limit JPA Specification query to fetch required data
- php - PHP:如何通过重复值展平多维数组
- python - How to write sentence in notepad using keyboard python package