IOSアプリをテストしていますが、Appiumの速度が速すぎるため、ログイン後に要素を操作できません。
誰かがAppiumiOSテストを待つWebDriverWaitスタイルの使用例を教えてもらえますか?できればRubyで。
ありがとう。
これは私にとってはうまくいきましたが、私はAppiumを初めて使用します
#code that navigated to this page
wait = Selenium::WebDriver::Wait.new :timeout => 10
wait.until { @driver.find_element(:name, 'myElementName').displayed? }
#code that deals with myElementName
この構造を使用して、いくつかの要素が表示されるのを待ちます。
wait_true { exists { find_element(:xpath, path_to_element) } }
もちろん、:xpath
だけで見つけることはできません。
また、タイムアウトを設定することもできます。
wait_true(timeout) { exists { find_element(:xpath, path_to_element) } }
これが私が思いついたものですが、Javaで。少し引き出されていますが、どのように待つべきかを説明しています。秒単位の待機時間がかかり、要素がまだ存在するかどうかを毎秒チェックします。要素を見つけたら、それが表示されていることを確認して、操作できるようにします。 「ドライバー」は明らかにWebDriverオブジェクトです。
public void waitForVisible(final By by, int waitTime) {
wait = new WebDriverWait(driver, timeoutInSeconds);
for (int attempt = 0; attempt < waitTime; attempt++) {
try {
driver.findElement(by);
break;
} catch (Exception e) {
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
}
}
wait.until(ExpectedConditions.visibilityOfElementLocated(by));
}
私はこのソリューションをappiumJavaで使用しています。
Thread.sleep(1000);
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.name("somename")));