请相信我,因为我对Appium相对较新。我在Appium中为我的Android应用程序编写C#测试。我很难找到下面问题的答案。
1)如何检查特定元素是否存在?是否有任何布尔属性或函数返回true或false?如果元素不存在,方法driver.GetElementById
,driver.GetElementByName
等会抛出异常。
2)假设我想写一个登录测试。用户输入用户名和密码并点击登录按钮。请求转到服务器,它检查数据库中是否存在用户名 - 密码对。同时,屏幕上显示加载指示器(Android中的进度对话框)。在假设我不想使用像Thread.Sleep
函数之类的东西之前,应该如何暂停它的执行直到响应来自服务器?
3)我可以检查屏幕上的文本字段验证是否失败?如果我们通过setError
函数设置该文本字段的验证,则在验证失败时,文本字段下方会显示带有黑色背景和白色文本的控件。有没有办法检查验证失败了?
预测答案。感谢。
答案 0 :(得分:1)
对于前两个问题(这是我在java中所做的,绝对可以在c#中实现) -
1)使用轮询技术 - 在循环中检查以下
的元素返回@param - By by , int time
driver.findElement(By by);
这不能为null或为空。 如果在阈值时间内元素不存在则则测试失败。 在appium模式中 - isVisible()将与上面相同,因为不可见的元素将不存在。
2)检查下一个要等待的活动。使用相同的轮询技术继续比较当前活动与等待活动,如果等待活动未在阈值时间内启动,则测试失败。
@param int time, String awaitedActivity
1)获取当前活动。 2)与期待的活动比较。 3)如果相同则打破循环。 4)其他人睡一会儿,然后继续睡到时间。