Проблема с использованием Selenium для автоматизации обратной ссылки внутри ASP.NET UpdatePanel - PullRequest
2 голосов
/ 14 сентября 2009

У меня есть элемент управления GridView с включенной сортировкой внутри панели обновления. Я использовал Selenium IDE для записи теста, который нажимает на ссылку сортировки таблицы, но когда я пытаюсь выполнить тест, он застревает в команде click. Глядя на журнал я вижу:

[info] Executing: |click | link=Name | | 
[error] Timed out after 30000ms 

Я еще не пробовал это с Selenium-RC, я не знаю, будет ли это по-другому. Я не хочу, чтобы Selenium чего-то ждал. Есть идеи как обойти это?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 сентября 2009

при использовании селена + Ajax (или страница просто обновляется при определенных условиях).

Я обычно использую:

selenium.WaitForCondition

или я недавно создал следующий код (страница использует фреймы).

    public bool AccessElementsOnDynamicPage(string frame, Predicate<SeleniumWrapper> condition)
    {
        DateTime currentTime = DateTime.Now;
        DateTime timeOutTime = currentTime.AddMinutes(6);
        while (currentTime < timeOutTime)
        {
            try
            {
                SelectSubFrame(frame);
                if (condition(this))
                    return true;
            }
            catch (SeleniumException)
            {
                //TODO: log exception
            }
            finally
            {
                currentTime = DateTime.Now;
            }
        }
        return false;
    }

    public bool WaitUntilIsElementPresent(string frame, string locator)
    {
        return AccessElementsOnDynamicPage(frame, delegate(SeleniumWrapper w)
        {
            return w.IsElementPresent(locator);
        });

    }

    public bool WaitUntilIsTextPresent(string frame, string pattern)
    {
        return AccessElementsOnDynamicPage(frame, delegate(SeleniumWrapper w)
        {
            return w.IsTextPresent(pattern);
        });
    }

Вскоре вы дойдете до того, что вам потребуется Selen RC, интегрированный в вашу среду разработки, для этого я рекомендую вам прочитать: Как я могу сделать свои тесты Selenium менее хрупкими?

Это ожидание, но для определенных элементов, которые должны (или появиться) на странице.

1 голос
/ 24 сентября 2009

Спасибо за ссылку, Дэйв.

Я нашел ответ в этом посте: Selenium IDE timeout click () . Не совсем то, что я хотел сделать, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...