2017-02-02 11 views
0

Robot Frameworkの特定の操作の後にブラウザURLが特定のパターン(特定の値を持つ)と一致するようにしようとしていますが、毎回URLが変わり、それらの可変部分がスクリプトを失敗させてしまい、スクリプトを渡すことができないようです。URLをRobot Frameworkで可変部分と照合する方法

は、ここで私は後だ何の仮定の例です:

URL: "EI" パラメータ( "eCaTWLf0IO3k8AfGyouIBA")の内容が可変である。このURLでhttps://www.google.com/?gfe_rd=cr&ei=eCaTWLf0IO3k8AfGyouIBA#q=Robot+Framework

。私はスクリプトがそのパラメータ値を無視するだけで、(この問題とは無関係の)他の条件が満たされているかどうかを確認することができます。だから、多分、正規表現、に似て何かを:

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

テストスクリプトの正確な行は次のとおりです。 '正規表現と一致する必要があります\t $ {url} \t https:\/\/www \ .google \ .fi \/\?gfe_rd = cr&ei = q = Robot \ + Framework' – ttyp0

3

私はそれが動作するようになりました。問題は、Robot Frameworkではエスケープが1つではなく2つのバックスラッシュ( '\\')で行われることでした。行を次のように変更します。

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

関連する問題