Селен-клавиша esc не работает в FireFox - PullRequest
0 голосов
/ 23 декабря 2009

Я написал этот код для своих модульных тестов в c # с селеном для тестирования моего веб-приложения. В частности, я проверяю, что окно для всплывающей подсказки отображается правильно и после нажатия клавиши 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 () без выхода и возврата значения. Я только что попытался использовать keyDown, KeyPress и т.д ... но это не работает. спасибо.

1 Ответ

1 голос
/ 23 декабря 2009

Я считаю, что XPath, который вы используете, помещает в бесконечный цикл. Я бы убрал пробел между //form и //div и одним из слэшей перед div

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

Причина, по которой я предлагаю изменить это

  1. Я не думаю, что это правильный xpath
  2. // скажет Xpath выполнить поиск по всему документу, а поскольку вы делаете это, попросите его найти форму, а затем снова начать поиск div, чтобы он затем пошел в странный бесконечный цикл

Помните, что Selenium поддерживает CSS-селекторы, если вы можете их использовать, поскольку это ускорит выполнение ваших тестов IE

...