2013-09-25 35 views
0

在我的腳本中添加了約會,並且約會之後被保存在屏幕的頂部,工具提示顯示爲「已成功保存」文本。我聲稱這個文本,我嘗試了Thread.sleep(3000);,但我的腳本有時並不是所有的時候都成功了。現在我想使用這個工具提示元素的webdriverwait,這個工具提示元素目前不在DOM中,但是當約會被保存時它會出現一次。我想使用webdriverwait來處理DOM中當前不存在的元素

回答

0

你可以使用WebDriverWait這是硒的標準的方式來「等待」一些事情發生,比如標題更改爲一個特定的文本,一個元素消失了,等等。

爲了您的具體情況,我通常會定義下面的方法來檢測一個標記包含在文檔主體特定文本是否存在:

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); }); 
相關問題