Selenium keypress esc在FireFox中不起作用

时间:2009-12-23 10:30:54

标签: firefox selenium escaping keypress

我在c#中用selenium为我的单元测试编写了这段代码来测试我的web应用程序。特别是我正在测试工具提示的窗口是否正确显示,按esc键后它会消失:

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()whitout exit中进入无限循环并返回一个值。我刚刚尝试使用keyDown,KeyPress等......但它不起作用。 谢谢。

1 个答案:

答案 0 :(得分:1)

我认为你正在使用的XPath正在进入无限循环。我会删除//form//div之间的空格以及div前面的一个斜杠

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

我建议更改它的原因是

  1. 我认为它不是有效的xpath
  2. //将告诉Xpath搜索整个文档,因为你正在做它告诉它搜索表单,然后再次开始搜索div,然后进入奇怪的无限循环< / LI>

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