をAJAXやCSSの変更のいずれかが私のテストが時々失敗する原因となった事例がありました。これらのメソッドを静的ドライバインスタンスに追加し、必要に応じてテストが特定の条件を待つようにすることができます。 (c#)
WaitForCssChangeメソッドのTimedWaitは基本的にはThreading.Thread.Sleep
です。これは私が推測する最も美しい方法ではありませんが、私のニーズにはうまくいきます。 CSSの変更点については
public static void WaitForAjax()
{
var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(25));
wait.Until(d => (bool)(d as IJavaScriptExecutor).ExecuteScript("return jQuery.active == 0"));
}
:Ajaxの待ち時間については
public static void WaitForCssChange(IWebElement element, string value)
{
int counter = 0;
while (true)
{
if(element.GetAttribute("style").Contains(value) || counter > 50)
{
break;
}
TimedWait(20);
counter++;
}
}
私はあなたにリンクされ、これが私のために働いたセレンのドキュメントからの例を使用していました。どうもありがとう。 – chucknor