51Testing软件测试论坛

标题: appium 定位会偶尔定位偏是怎么回事? [打印本页]

作者: 乐哈哈yoyo    时间: 2017-6-27 09:28
标题: appium 定位会偶尔定位偏是怎么回事?
问题描述:在appium定位中,发现会偶尔定位偏,两个相同的用例每次循环执行5次,会有几次失败。具体代码如下:
// 爱分享
  1. @Test(priority = 0, invocationCount = 5)
  2. public void loveToshare() throws InterruptedException {
  3. Thread.sleep(9000);
  4. driver.findElementById("com.lvman:id/item2").click();
  5. // WebElement el = driver.findElement(By.id("com.lvman:id/item1"));
  6. // el.click();
  7. System.out.println("进入友邻社交一级板块");
  8. Thread.sleep(5000);
  9. driver.findElementByXPath("//android.widget.TextView[@text='爱分享']")
  10. .click();
  11. if (appiumcommon.isElementExsit(driver,
  12. "//android.widget.TextView[@text='爱分享']")) {
  13. // driver.sendKeyEvent(4);
  14. System.out.println("-----" + "爱分享验证完成" + "-----");
  15. } else {
  16. }
  17. driver.findElementById("com.lvman:id/head_info").click();
  18. driver.findElementById("com.lvman:id/neighbour_title").sendKeys(
  19. "aifengxiangfangweiwei");
  20. driver.findElementById("com.lvman:id/neighbour_introduce").sendKeys(
  21. "fangweishigehaoren.");
  22. driver.findElementById("com.lvman:id/btn_homecommit_submit").click();
  23. ((AndroidDriver) driver).sendKeyEvent(AndroidKeyCode.BACK);
  24. return;
  25. }
  26. // 活动
  27. @Test(priority = 1, invocationCount = 5)
  28. public void activity() throws InterruptedException {
  29. Thread.sleep(9000);
  30. driver.findElementById("com.lvman:id/item2").click();
  31. // WebElement el = driver.findElement(By.id("com.lvman:id/item1"));
  32. // el.click();
  33. System.out.println("进入友邻社交一级板块");
  34. Thread.sleep(5000);
  35. driver.findElementByXPath("//android.widget.TextView[@text='活动']")
  36. .click();
  37. if (appiumcommon.isElementExsit(driver,
  38. "//android.widget.TextView[@text='活动']")) {
  39. // driver.sendKeyEvent(4);
  40. System.out.println("-----" + "活动验证完成" + "-----");
  41. } else {
  42. }
  43. driver.findElementById("com.lvman:id/head_info").click();
  44. driver.findElementById("com.lvman:id/neighbour_title").sendKeys(
  45. "huodongfangweiwei");
  46. driver.findElementById("com.lvman:id/neighbour_introduce").sendKeys(
  47. "zheshihuodongneirong.");
  48. driver.findElementById("com.lvman:id/btn_homecommit_submit").click();
  49. driver.findElementById("com.lvman:id/tv_conclude_time").click();
  50. driver.findElementById("android:id/button1").click();
  51. ((AndroidDriver) driver).sendKeyEvent(AndroidKeyCode.BACK);
  52. return;
  53. }
复制代码

定位元素是加粗位置标识。
下面是我的app元素详情定位截图:







也就是我在定位item2的时候,偶尔会定位到item4中。注意是偶尔哦,不知道各位在工作中有没有人遇到这个错误?求大神指点!谢谢


作者: 乐哈哈yoyo    时间: 2017-6-27 09:50
元素定位偏可能是页面没有加载完全,还有可能是你定位元素的方式以及元素本身的判定区域决定
作者: 乐哈哈yoyo    时间: 2017-6-27 09:52
乐哈哈yoyo 发表于 2017-6-27 09:50
元素定位偏可能是页面没有加载完全,还有可能是你定位元素的方式以及元素本身的判定区域决定

了解!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2