ユーザーをサイトにログインさせ、特定の操作を実行する自動テストを作成しました。テストは最初に Firefox、Chrome、次に IE で実行されます。Firefox で完全に動作し、ブラウザを閉じてから Chrome でテストを実行し、再びブラウザを閉じます。まったく同じテストで IE で URL を開くと、ログイン プロセスの要素「UserName」が見つからないことが示されます。
ページのレンダリングに問題がある場合に備えて拡張しようとした待機機能がありますが、これは機能しませんでした。開発ツールを使用して要素を検索すると、問題はないと判断されるため、テストでどのように失敗するかについて混乱しています。
IEでこれを引き起こす原因を知っている人はいますか?
テキストフィールドの HTML は次のようになります...
FF と Chrome では機能するが IE では機能しない Selenium コードは次のとおりです。
private Results _Test_Login(IWebDriver driver) { 結果 rt;
driver.Navigate().GoToUrl("MyURL");
driver.FindElement(By.Id("UserName")).Click();
TextboxOperation type = new TextboxOperation("UserName", driver, "Success", EnumSearchType.ById);
OperationExecutor.PerformOperations(type);
rt = new Results(driver.Url, driver.PageSource, "Existing Users");
return rt;
}
[TestMethod]
public void Test_Login()
{
List<IWebDriver> drivers = new List<IWebDriver>() { firefoxDriver, chromeDriver, ieDriver };
foreach (IWebDriver driver in drivers)
{
Results results = _Test_Login(driver);
if (results.Exception != null)
{
throw results.Exception;
}
Assert.IsFalse(results.ErrorState);
}
}