在我的脚本中添加约会并在约会后保存在屏幕顶部,工具提示出现文本“已成功保存”。我正在断言这篇文章,我尝试使用Thread.sleep(3000);
,但我的脚本有时候不会成功。现在我想对这个工具提示元素使用webdriverwait,这个元素当前没有在DOM中呈现,但是当约会被保存时它会出现一次。
答案 0 :(得分:0)
您可以使用WebDriverWait类,例如
new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(locator));
这只是一个例子。有关详细信息,请查看http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html
答案 1 :(得分:0)
你可以使用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); });