2016-09-08 3 views
7

У меня есть всплывающие окна с этим именем структуры:Как сделать регулярное выражение в команде waitForPopUp в Selenium IDE?

static_dynamic_static

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

Команда: waitForPopUp

Цели: регулярного выражения: статический _ + _ статический

Но это не работает.. Что я делаю неправильно? Это даже работает. Если нет, есть ли другой способ решить эту проблему?

ответ

1

Из моего опыта вам не нужно объявить его как регулярное выражение в целевой области, вы должны просто быть в состоянии иметь цель, как:

static_*_static 

и что должны делать это

+0

Это не работает печально. Не для команды waitForPopUp, а не для команды thr selectWindow :( –

0

Если у вас есть только одно всплывающего окна вы можете использовать нуль в качестве мишени и тест займет первое окно:

waitForPopup | null 

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

waitForPopup | javascript{'static'+storedVars['dynamic']+'static'} 

Если вы не можете сохранить динамическую часть, пожалуйста, предоставить HTML вашей страницы или только ту часть, где упоминается динамическая часть.

Я вижу, что теоретически можно получить все имена ваших окон и использовать шаблон в цикле, чтобы получить его.

Также (теоретически) можно расширить функцию waitForPopup по умолчанию.

Но второй способ и особенно первые намного дешевле.

0

Лучший способ справиться с этим может быть, чтобы запустить фрагмент JavaScript, чтобы справиться с этим:

<tr> 
    <td>storeEval</td> 
    <td>var myRe = new RegExp(&quot;^prefix.+&quot;, &quot;g&quot;); var mywin; windows=selenium.getAllWindowNames();for (i = 0; i &lt; windows.length; i++) { if(myRe.test(windows[i])) { mywin=windows[i]}&nbsp;&nbsp;};&nbsp;&nbsp;mywin;</td> 
    <td>x</td> 
</tr> 
<tr> 
    <td>selectWindow</td> 
    <td>name=${myWindow}</td> 
    <td></td> 
</tr> 

Это Javascript не полностью функция (без нулевой проверки), но должно помочь вам на правильном пути ,