在我的脚本中,我正在添加约会,在将约会保存在屏幕顶部后,工具提示将显示文本"已成功保存"。我正在断言这个文本,我尝试过Thread.sleep(3000);
但我的脚本有时不是一直成功。现在我想对这个工具提示元素使用 webdriverwait,该元素目前未显示在 DOM 中,但它会在保存约会时出现一次。
您可以使用 WebDriverWait 类,例如。
new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(locator));
这只是一个例子。欲了解更多信息,请查看 http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html
您可以使用WebDriverWait,这是Selenium中"等待"某些事情发生的标准方式,例如标题更改为特定文本,元素消失等。
对于您的具体情况,我通常定义以下方法来检测标签是否包含文档正文中是否存在特定文本:
private static true IsElementExistsWithText(string text, string tagName, IWebDriver driver)
{
try
{
var result = driver.FindElement(By.CssSelector(string.Format("{0}:contains("{1}")", tagName, text)));
return true;
}
catch (Exception ex)
{
return false;
}
}
然后在我的代码中:
new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until((d) => { return IsElementExistsWithText("Saved Successfully", "span", driver); });