2017-02-02 10 views
0

Я пытаюсь обеспечить, чтобы URL-адрес браузера после определенных операций с Robot Framework соответствовал определенному шаблону (и имел определенные значения), но части результирующей страницы URL-адрес меняется каждый раз, и эти переменные части приводят к сбою сценария, и я не могу заставить этот скрипт пройти.Как сопоставить URL-адрес с переменными частями в нем с помощью Robot Framework

Вот гипотетический пример того, что я после:

URL: https://www.google.com/?gfe_rd=cr&ei=eCaTWLf0IO3k8AfGyouIBA#q=Robot+Framework

В этом URL содержание параметра «е ^» («eCaTWLf0IO3k8AfGyouIBA») является переменной. Я хочу, чтобы скрипт просто проигнорировал это значение параметра и проверил передачу, если выполнены другие условия (не связанные с этой проблемой). Так, может быть, с регулярным выражением, что-то похожее на:

URL: https://www.google.com/?gfe_rd=cr&ei=.*#q=Robot+Framework

Как я должен идти о том, чтобы что-то подобное, чтобы работать?

ответ

0

Попробуйте следующее:

*** Settings *** 
Library Selenium2Library 

*** Test Cases *** 
Test 
    Do Your Stuff Here With Browser 
    ${url} Get Location 
    Should Match Regexp ${url} https://www.google.com/.* 
+0

Это именно то, что я сделал сначала, но это дало мне: Поиск Google | FAIL | 'https://www.google.fi/?gfe_rd=cr&ei=-jSTWK_vGufk8AfaqbmQCw#q=Robot+Framework' не соответствует 'https://www.google.fi/?gfe_rd=cr&ei=.*#q= Robot + Framework ' – ttyp0

+0

Вы избежали специальных символов в вашем регулярном выражении? '\?' –

+0

Вот точная строка из тестового скрипта: 'Должен соответствовать Regexp \t $ {url} \t https: \/\/www \ .google \ .fi \/\? Gfe_rd = cr & ei =. * # q = Robot \ + Framework' – ttyp0

3

Я получил его на работу. Проблема заключалась в том, что в Robot Framework побег выполняется с двойным обратным слэшем ('\\') вместо одного. Изменение линии до:

Should Match Regexp ${url} https://www\\.google\\.com/\\?gfe_rd=cr&ei=.*#q‌​=Robot\\+Framework

выполненный сценарий.

+0

Я предполагаю, что это на самом деле потому, что Robot Framework должна избегать определенных символов перед передачей строки URL-адреса в SeleniumLibrary, которая затем должен также избегать определенных символов, но, возможно, кто-то с дополнительной информацией об этом мог бы добавить комментарий, чтобы подтвердить или опровергнуть это предположение? – ttyp0

+0

Я думаю, что причина, по которой Robot Framework использует '\\\', связана с тем, как с ней работает Python. – Helio

 Смежные вопросы

  • Нет связанных вопросов^_^