我有2个名为dd1和dd2的下拉列表。
dd1用于国家,dd2用于国家。
点击dd1后,会发生ajax调用(并显示' loading'图像)并填充dd2。
有没有办法确定' loading'单击dd1后显示图像?
所以测试用例就是这样。 1.转到页面 2.选择' USA'在dd1 - 如果加载图像可见,则置位 - 如果加载图像消失则断言 3.选择' Texas'
我对第二步的断言感到震惊
答案 0 :(得分:0)
将您的加载图片放在span或div中,并为其指定ID。 更改dd1后,进行Ajax调用并显示它 任何时候你想知道装箱是否在那里,试着 检查可见性
$("logoContainer").is(":visible")
答案 1 :(得分:0)
我创建了一个驱动程序覆盖,所以现在我调用 driver.WaitForPageLoad(); 并等待直到微调器消失并加载文档就绪状态。更多细节可以在示例链接中看到,但是这里是你如何覆盖并等待微调器消失(假设微调器有一个你可以搜索的类。
public static bool WaitForPageLoad(this IWebDriver driver)
{
WaitForDocumentReady(driver);
bool ajaxReady = WaitForAjaxReady(driver);
WaitForDocumentReady(driver);
return ajaxReady;
}
private static bool WaitForAjaxReady(IWebDriver driver)
{
Thread.Sleep(1000);
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
return wait.Until<bool>((d) =>
{
return driver.FindElements(By.CssSelector(".waiting, .tb-loading")).Count == 0;
});
}
答案 2 :(得分:0)
这对我有用
wait.Until(driver =&gt;!driver.FindElement(By.Id(“ControlId”)。显示);