2017-02-02 25 views
0

我試圖確保瀏覽器URL在與Robot Framework進行某些操作後匹配特定模式(並且具有特定值),但部分結果頁面每次URL更改和這些可變部分都會使腳本失敗,我似乎無法讓腳本通過。如何使用Robot Framework與其中的可變部分匹配URL

這裏是什麼,我以後是一個假設的例子:

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

此URL中的 「EI」 參數( 「eCaTWLf0IO3k8AfGyouIBA」)的內容是可變的。我希望腳本簡單地忽略該參數值,並通過檢查來提供其他條件(與此問題無關)。所以,也許用正則表達式,一個類似於:

網址: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 Search |失敗| 'https://www.google.fi/?gfe_rd=cr&ei=-jSTWK_vGufk8AfaqbmQCw#q=Robot+Framework'與'https://www.google.fi/?gfe_rd=cr&ei=.*#q=不符機器人+框架' – ttyp0

+0

你在你的正則表達式中逃脫了特殊字符嗎? ?'\' –

+0

下面是測試腳本的確切行: '應該匹配的正則表達式\t $ {url}的\t的https:\/\/WWW \。谷歌\ .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