在Appium

时间:2016-02-18 06:02:08

标签: android appium

我有与该元素关联的id,但是当尝试使用findElement(By.id())找到它时,它不起作用。

此外,我在博客中搜索了同样的问题,例如Can we find element by ID in appium,但我看到其中的资源ID前缀为packagename和:id。在我的情况下,这些没有关联。元素详情的屏幕截图如下: enter image description here

我使用下面的代码按id找到元素。

 - driver.findElement(By.id("loginHome"));
 - driver.findElement(By.id("com.packagename:id/loginHome"));
 - driver.findElement(By.id("android:id/loginHome"));
 - driver.findElement(By.xpath(//*[@id='loginHome']));

但上述代码片段均无效。

有人可以帮我解决这个问题!

Thnx提前......

4 个答案:

答案 0 :(得分:1)

不完全回答您的问题,但为您提供替代方法来完成测试。

我按照此链接https://github.com/appium/appium-dot-app进行操作。

您无需编码所有内容。该应用程序提供了一些简单的方法来记录您的点击和手势。

例如,当我点击某些内容时,它会自动打印出脚本。 wd.find_element_by_xpath(“// android.view.View [1] /android.widget.FrameLayout [2] /android.widget.LinearLayout [1] /android.widget.RelativeLayout [2] /android.widget.RelativeLayout [1 ]“)。单击()

您只需选择自己喜欢的编程语言并在测试完成后保存即可。

我必须指出的一件事是刷卡功能已损坏。使用以下代码执行滑动手势

wd.swipe(421, 424, 70, 424, 500)

答案 1 :(得分:0)

您也可以尝试其他选项。试试这个:

//add some wait command before the element
Thread.sleep(2000);
driver.findElementsByXPath("//*[@class='android.widget.Button' and @index='4']");

答案 2 :(得分:0)

尝试在点击usind ID之前为要加载的页面添加显式睡眠。

答案 3 :(得分:0)

首先尝试等待特定元素

MobileElement expelement=(MobileElement) (new WebDriverWait(driver, 15)).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//android.widget.Button[@index='4']")));

然后尝试进行点击(或您想要做的活动)

driver.findElement(By.xpath("//android.widget.Button[@index='4']")).click();