2009-12-23 49 views
0

我爲我的單元測試用c#編寫了這個代碼,用於測試我的web應用程序。特別是我測試,對於提示窗口中正確顯示和ESC按鍵後消失:Selenium keypress esc在FireFox中不工作

private const string XPathToolTipStyle = "//form[@action='search.aspx'] //div[@id='searchToolTip']/@style"; 

private bool IsToolTipOpen() 
     { 
      var tempToolTip = selenium.GetAttribute(XPathToolTipStyle); 
      return !(tempToolTip).ToLower().Contains("display: none;"); 
     } 

[Test] 
     public void PressEscAndCloseClosingKeys() 
     { 
      writeSomethingInTheInputBox(); 
      Assert.That(IsToolTipOpen()); 
      selenium.KeyPressNative("27"); //press esc 
      Assert.That(!IsToolTipOpen()); 
     } 

的問題是,在Internet Explorer中它工作正常,但在Firefox它會在無限循環IsToolTipOpen()清除退出並返回一個值。我剛剛嘗試使用keyDown,KeyPress等......但它不起作用。 謝謝。

回答

1

我認爲您正在使用的XPath正在進入無限循環。我會刪除那就是//form//div和斜槓之一之間在div

private const string XPathToolTipStyle = "//form[@action='search.aspx']/div[@id='searchToolTip']/@style"; 

爲什麼我建議改變它

  1. 我不認爲其原因前面的空間了有效的xpath
  2. //會告訴Xpath搜索整個文檔,既然你在做它告訴它搜索表單,然後重新開始搜索div,然後進入奇妙的無限循環

請記住,Selenium支持CSS選擇器,如果你可以使用它們,因爲它會使你的IE測試運行更快