2 回答
TA贡献1725条经验 获得超7个赞
判断是否出现弹出元素,如果不出现元素计数为0
List<IWebElement> elementList = new List<IWebElement>();
elementList.AddRange(driver.FindElements(By.XPath("..."));
if(elementList.Count > 0)
{
//If the count is greater than 0 your element exists.
Console.Write("pop up is present");
}else{
Console.Write("pop up not present");
}
注意:请确保使用FindElements()而不是FindElement()
TA贡献1906条经验 获得超10个赞
我建议使用 webdriverwait,因为根据表单的不同,在成功消息之前可能会有延迟。
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
var element = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("your xpath here")));
Assert.NotNull(element);
断言格式将根据您的框架而有所不同。那是来自 xUnit 的。
注意:包含 ExpectedConditions 的包没有维护,但它们非常简单,如果您担心的话,可以将其复制到您的代码或自己的包中。
public static Func<IWebDriver, IWebElement> ElementIsVisible(By locator)
{
return (driver) =>
{
try
{
return ElementIfVisible(driver.FindElement(locator));
}
catch (StaleElementReferenceException)
{
return null;
}
};
}
private static IWebElement ElementIfVisible(IWebElement element)
{
return element.Displayed ? element : null;
}
- 2 回答
- 0 关注
- 97 浏览
添加回答
举报