1

マリオネットドライバーにアップデートして以来。Firefox は待機をしなくなりました。基本的に、ログインして、ページが読み込まれるのを待ってから、ページで「ログアウト」を見つけて、ログインしているかどうかを確認します。これが私のセットアップです

// navigate to url "http://..."
// Find Log In button and .Click()

WebDriverWait wait = new WebDriverWait(driver, System.TimeSpan.FromSeconds(30));
wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));

// Assert if the page contains "Log out"

ログインをクリックした後、ページが読み込まれるのを待っていないため、「ログアウト」が見つからないためエラーがスローされます。

コードが古い Firefox ドライバー (Marionette ではない) と Chrome のドライバーでも機能したことを強調します。新しい Firefox ドライバーが待機しないという問題を抱えている人はいますか?

申し訳ありませんが、もっと明確にする必要がありました。Firefox ドライバーは何も待機していないため、既存の要素を待機しても機能しません。

4

1 に答える 1

0

テストが失敗する理由は、ジョニーがコメントで述べたことです。ログインアクションの直後にページが準備できるのを待っています。これは、操作したばかりなので、すでに「準備完了」です。あなたがしたいことは、ログオフ要素で暗黙の待機を行うことです。これは、いくつかの異なる方法で行うことができます。

wait.Until(ExpectedConditions.ElementExists(By.XPath(xpath)));

wait.Until(ExpectedConditions.ElementExists(By.CssSelector(csspath)));

これらのいずれかがページで暗黙の待機を実行し、ログオフ要素が見つかるまで (待機要素で定義されているように) 最大 30 秒待機します。

于 2016-08-16T17:03:35.670 に答える