2011-06-06 60 views
0

我有一個問題,用正則表達式硒IDE正則表達式的問題

它給出了這樣的錯誤:

[error] Threw an exception: missing) after argument list 

注:我注意到,硒IDE放入多餘的斜線後我將光標移動到包含我輸入的所有IDE命令的文本框。

storeEval  | re=/https://[.\\w-]+/[.\\w-]*\\//;re.exec(${CurrentUrl}) | jsHostName 
+0

storeEval與storeLocation位於不同的行上。我不適用於stackoverflow的編輯器。 – Remy 2011-06-06 15:29:26

+0

我爲你解決了這個問題。有關將來的參考資料,請參閱:http://stackoverflow.com/editing-help – 2011-06-06 15:55:48

回答

0

你的正則表達式是無效的:在JavaScript方面(因爲,正如你可能知道,參數storeEval是一個JavaScript表達式)的正則表達式對象速記構造函數的一般形式是:

<variable> =/<your-regex>/

重要的含義是,<your-regex>可能包含任何virgules(/),除非你用正確的逃生反斜槓他們。你這樣做對你的表達最後的短斜線,但你必須這樣做,爲他們每個人,所以我加入了三個反斜槓得到這個:

re = /https:\/\/[.\w-]+\/[.\w-]*\//; 

請注意,你甚至可以驗證您的正則表達式就在這裏SO(!):看看你最初的代碼片段,你會看到只有/https:/在勃艮第高亮;我的代碼片段位於整個右側,在勃艮第中突出顯示。

此修復應該讓你更遠;還沒有在Selenium中檢查過它是否能解決你的整個問題。

3

${CurrentUrl}返回變量的值作爲文本文本,但由於您想在javascript中使用該變量,因此需要通過storedVars數組訪問該變量。因此,如果您將腳本更改爲以下版本,它應該可以正常工作:

re=/…/; re.exec(storedVars["CurrentUrl"])