FluentWait 与 findElementByAndroidUIAutomator
FluentWait with findElementByAndroidUIAutomator
我正在使用 Appium 自动化本机 android 应用程序并尝试使用 FluentWait 等待 page/element 使用以下代码段显示:
@Test
public static void Test1() {
MobileElement mobileElement = func(getdriver());
System.out.println(mobileElement.getText());
}
private static MobileElement func(AppiumDriver driver) {
AndroidDriver and = (AndroidDriver) getdriver();
String value1 = "More";
String value2 = "new UiSelector().text(" + "\"" + value1 + "\"" + ")";
FluentWait<AndroidDriver> wait = new FluentWait(and)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class)
.ignoring(TimeoutException.class);
MobileElement myElement = wait.until(new Function<AndroidDriver, MobileElement>() {
@Override
public MobileElement apply(AndroidDriver androidDriver) {
return (MobileElement) androidDriver.findElementByAndroidUIAutomator(value2);
}
});
return myElement;
}
我正在尝试等待(最多 30 秒)成功登录后显示“更多”页面。我看到的问题是内联方法 returns 立即与 "An element could not be located on the page using the given search parameters"。我希望 FluentWait 在忽略 "NoSuchElementException" 的同时继续轮询 myElement 以显示在屏幕上。它没有发生。
我哪里做错了?
请指教
我使用 python 并且以下代码工作正常,您可以使用 self.driver.implicitly_wait(10,5) 或任何值
self.driver.find_element_by_name('NEXT').click()
self.driver.implicitly_wait(10)
self.driver.find_element_by_id('com.sndfbi.android:id/m_passwordTextField').send_keys('1111abcd')
self.driver.find_element_by_id('com.bdhasb.android:id/m_passwordConfirmTextField').send_keys('1111abcd')
self.driver.find_element_by_name('SAVE').click()
self.driver.implicitly_wait(10)
self.driver.find_element_by_name('OK').click()
self.driver.implicitly_wait(10)
self.driver.back()
我正在使用 Appium 自动化本机 android 应用程序并尝试使用 FluentWait 等待 page/element 使用以下代码段显示:
@Test
public static void Test1() {
MobileElement mobileElement = func(getdriver());
System.out.println(mobileElement.getText());
}
private static MobileElement func(AppiumDriver driver) {
AndroidDriver and = (AndroidDriver) getdriver();
String value1 = "More";
String value2 = "new UiSelector().text(" + "\"" + value1 + "\"" + ")";
FluentWait<AndroidDriver> wait = new FluentWait(and)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class)
.ignoring(TimeoutException.class);
MobileElement myElement = wait.until(new Function<AndroidDriver, MobileElement>() {
@Override
public MobileElement apply(AndroidDriver androidDriver) {
return (MobileElement) androidDriver.findElementByAndroidUIAutomator(value2);
}
});
return myElement;
}
我正在尝试等待(最多 30 秒)成功登录后显示“更多”页面。我看到的问题是内联方法 returns 立即与 "An element could not be located on the page using the given search parameters"。我希望 FluentWait 在忽略 "NoSuchElementException" 的同时继续轮询 myElement 以显示在屏幕上。它没有发生。
我哪里做错了?
请指教
我使用 python 并且以下代码工作正常,您可以使用 self.driver.implicitly_wait(10,5) 或任何值
self.driver.find_element_by_name('NEXT').click()
self.driver.implicitly_wait(10)
self.driver.find_element_by_id('com.sndfbi.android:id/m_passwordTextField').send_keys('1111abcd')
self.driver.find_element_by_id('com.bdhasb.android:id/m_passwordConfirmTextField').send_keys('1111abcd')
self.driver.find_element_by_name('SAVE').click()
self.driver.implicitly_wait(10)
self.driver.find_element_by_name('OK').click()
self.driver.implicitly_wait(10)
self.driver.back()