Selenium keypress esc在FireFox中不工作

问题描述:

我为我的单元测试用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等......但它不起作用。 谢谢。

我认为您正在使用的XPath正在进入无限循环。我会删除那就是//form//div和斜杠之一之间在div

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

为什么我建议改变它

  1. 我不认为其原因前面的空间了有效的xpath
  2. //会告诉Xpath搜索整个文档,既然你在做它告诉它搜索表单,然后重新开始搜索div,然后进入奇妙的无限循环

请记住,Selenium支持CSS选择器,如果你可以使用它们,因为它会使你的IE测试运行更快