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";
为什么我建议改变它
- 我不认为其原因前面的空间了有效的xpath
-
//
会告诉Xpath搜索整个文档,既然你在做它告诉它搜索表单,然后重新开始搜索div,然后进入奇妙的无限循环
请记住,Selenium支持CSS选择器,如果你可以使用它们,因为它会使你的IE测试运行更快