2016-07-05 68 views
0

我试图执行一个testcase登录页面flipkart应用程序在Android设备上使用appium。等待存在的元素在30秒后超时位于:By.id:

我正在不一致误差如下: By.id:com.flipkart.android:id/et_password

30秒等待元件的存在位于由后超时。

注:我已经使用implicit waitexplicit wait,我已经给从30为70秒持续时间。测试偶尔得到通过。 请给我提供一个解决方案,这

我的代码:

cab.setCapability(CapabilityType.VERSION, "5.1.1"); 
cab.setCapability(CapabilityType.PLATFORM, "Mac"); 
cab.setCapability("platformName", "android"); 
cab.setCapability("platformVersion", "5.1.1"); 
cab.setCapability("deviceName", "70af41a"); 
cab.setCapability("app", "/Users/xxx/Downloads/flipkart.apk"); 
cab.setCapability("appPackage", "com.flipkart.android"); //Replace with your app's package 
cab.setCapability("appActivity", ".SplashActivity"); //Replace with app's Activity 
driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), cab); 

driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); 

element = driver.findElement(By.id("com.flipkart.android:id/mobileNo")); 
element.sendKeys("1234567897"); 

//driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);; 

MobileElement signup = driver.findElement(By.id("com.flipkart.android:id/btn_msignup")); 
signup.click(); 
WebDriverWait waitforsignup = new WebDriverWait(driver, 30); 
waitforsignup.until(ExpectedConditions.presenceOfElementLocated(By.id("com.flipkart.android:id/et_password"))); 
//driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
+0

是不是你告诉代码做的。 30秒后超时WebDriverWait(driver,30)'? – nullpointer

回答

0

而不是.presenceOfElementLocated()尝试.visibilityOfElementLocated()。 .presence会检查元素是否在DOM中,而.visibility会更进一步并确保该元素可见。 Selenium不会与不可见的元素进行交互,因此这可能是您的问题。

相关问题