Скрипт Watin для обработки всплывающего окна Ajax - PullRequest
1 голос
/ 06 мая 2009

Я использую инструмент тестирования WatiN и пишу скрипты на c # .net. У меня есть сценарий, в котором мне нужно изменить тему моей веб-страницы, поэтому для этого мне нужно нажать на кнопку изображения, которая открывает всплывающее окно ajax с изображением, и кнопку «Применить тему», которая теперь находится под изображением. нужно нажать на кнопку, чтобы узнать, как это сделать, предложите какое-нибудь решение.

Ответы [ 4 ]

4 голосов
/ 08 мая 2009

Итак, сначала нажмите на кнопку, которая вызывает всплывающее окно, и .WaitUntilExists () для кнопки внутри всплывающего окна.

IE.Button("ShowPopup").click()
IE.Button("PopupButtonID").WaitUntilExists()
IE.Button("PopupButtonID").click()

Это может не работать, если кнопка во всплывающем окне существует, но скрыта от глаз. В этом случае вы можете попробовать .WaitUntil () и указать атрибут для поиска.

IE.Button("ButtonID").WaitUntil("display","")
1 голос
/ 07 мая 2009

Само всплывающее окно Ajax не должно создавать проблем, если вы обрабатываете время загрузки элемента управления асинхронно. Если вы используете инструментарий управления ajax, вы можете решить его следующим образом

int timeout = 20;
for (i=0; i < timeout; i++)
{
    bool blocked = Convert.ToBoolean(ie.Eval("Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack();"));
    if (blocked)
    {
       System.Threading.Thread.Sleep(200);
    }
    else
    {
        break;
    }
 }

С видимым элементом управления вы сможете получить к нему обычный доступ.

В Watin 1.1.4 добавлена ​​поддержка WaitUntil и для элементов управления, но я не использовал его лично.

// Wait until some textfield is enabled
textfield.WaitUntil("disable", false.ToSting, 10);
0 голосов
/ 06 марта 2011

Я написал пост о том, как я делаю синхронизацию ajax, так как у меня были проблемы с WaitUntilExists: http://lebobitz.wordpress.com/2011/03/06/synchronizing-watin-and-ajax-with-jquery/

0 голосов
/ 07 мая 2009

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

...