Appium Hybrid App 应用调用系统相机时怎么可以点击到相机元素?

changeme2015 · 2015年06月11日 · 最后由 irisliu 回复于 2015年06月12日 · 2265 次阅读

由于公司产品是一款 Hybrid App,用 Appium 测试过程中遇到问题

1.应用当中的一些功能会调用系统的相机和电话等功能,但这部分 view 不是 webview,无法使用 appium 进行操作?请问大家还有合适的方法?
2.和问题 1 类似,如下图,比如调用一些 native 的 view,选择尊称这个界面的时候就无法使用 appium 去进行元素的定位?请问有什么办法吗?

谢谢大家

共收到 9 条回复 时间 点赞

context_name = u'NATIVE_APP'
webDriver.switch_to.context(context_name)

#1 楼 @irisliu 你的意思是从 webapp 后再次切换到 Nativeapp,再次调用 driver.findElementByAndroidUIAutomator()这个方法吗

WebElement title=driver.findElement(By.xpath("//*[@id='select_title']"));
title.click();

driver.context("NATIVE_APP");
WebElement em = driver.findElementByAndroidUIAutomator("new UiSelector().resourceId('android:id/text1')");
em.click();

这样还是会报错!

#3 楼 @sky629 driver.context("NATIVE_APP");这句之后你 print 看看 current context 是不是 native_app

#3 楼 @sky629
我用 python,不懂你写的。
不过我遇到过 debug 就能过,直接跑就不过的情况(native 和 webview 切换的过程)。我是每一步都 sleep 了一下解决这个问题的。
反正确保 step 没有问题,例如,点击显示出相机,sleep,switch context,sleep,print current context,sleep,点击相机上得照相按钮。

6楼 已删除

打印的此时已经是 App type:NATIVE_APP,但是
WebElement em = driver.findElementByAndroidUIAutomator("new UiSelector().resourceId('android:id/text1')");
em.click();
依旧报错

#7 楼 @sky629 不知道这个是不是能解决你得问题 http://testerhome.com/topics/2709

#8 楼 @irisliu 非常感谢,尝试用坐标点击可以的

#9 楼 @sky629 没帮到什么。恭喜解决问题~~

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册