我有一個問題,用正則表達式硒IDE正則表達式的問題
它給出了這樣的錯誤:
[error] Threw an exception: missing) after argument list
注:我注意到,硒IDE放入多餘的斜線後我將光標移動到包含我輸入的所有IDE命令的文本框。
storeEval | re=/https://[.\\w-]+/[.\\w-]*\\//;re.exec(${CurrentUrl}) | jsHostName
我有一個問題,用正則表達式硒IDE正則表達式的問題
它給出了這樣的錯誤:
[error] Threw an exception: missing) after argument list
注:我注意到,硒IDE放入多餘的斜線後我將光標移動到包含我輸入的所有IDE命令的文本框。
storeEval | re=/https://[.\\w-]+/[.\\w-]*\\//;re.exec(${CurrentUrl}) | jsHostName
你的正則表達式是無效的:在JavaScript方面(因爲,正如你可能知道,參數storeEval是一個JavaScript表達式)的正則表達式對象速記構造函數的一般形式是:
<variable> =/<your-regex>/
重要的含義是,<your-regex>
可能不包含任何virgules(/),除非你用正確的逃生反斜槓他們。你這樣做對你的表達最後的短斜線,但你必須這樣做,爲他們每個人,所以我加入了三個反斜槓得到這個:
re = /https:\/\/[.\w-]+\/[.\w-]*\//;
請注意,你甚至可以驗證您的正則表達式就在這裏SO(!):看看你最初的代碼片段,你會看到只有/https:/
在勃艮第高亮;我的代碼片段位於整個右側,在勃艮第中突出顯示。
此修復應該讓你更遠;還沒有在Selenium中檢查過它是否能解決你的整個問題。
${CurrentUrl}
返回變量的值作爲文本文本,但由於您想在javascript中使用該變量,因此需要通過storedVars
數組訪問該變量。因此,如果您將腳本更改爲以下版本,它應該可以正常工作:
re=/…/; re.exec(storedVars["CurrentUrl"])
storeEval與storeLocation位於不同的行上。我不適用於stackoverflow的編輯器。 – Remy 2011-06-06 15:29:26
我爲你解決了這個問題。有關將來的參考資料,請參閱:http://stackoverflow.com/editing-help – 2011-06-06 15:55:48