单击按钮后,测试用例失败,但未找到链接或任何验证消息,但失败。
我使用显式等待页面加载:
var waitForDocumentReady = new WebDriverWait(WebDriver, TimeSpan.FromSeconds(10));
waitForDocumentReady.Until((wdriver) => (WebDriver as IJavaScriptExecutor).ExecuteScript("return document.readyState").Equals("complete"));
对于等待验证消息的特定div:
WebDriverWait wait = new WebDriverWait(WebDriver, TimeSpan.FromSeconds(10));
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.ClassName("validationErrors")));
但是测试用例有时会通过管道通过,有时会失败。
您需要注意以下几点:
在单击按钮后找不到链接或任何验证消息的测试案例失败:很大程度上取决于button的属性。如果button包含以下任一属性/事件,则DOM Tree将得到更新,随后尝试查找所需的元素可能fail:
onclick()事件:
<button onclick="myFunction()">Click me</button>
$("p").click(function(){
alert("The paragraph was clicked.");
});
因此,在单击[[button之后,要找到需要诱导的元素,就必须为WebDriverWait引入ElementExists()
。
ElementExists()
中找到相关的讨论ExecuteScript("return document.readyState").Equals("complete")
中为present / visible / interactable无效。
ElementExists()
,则必须使用 HTML5 Constraint validation方法。