硒IDE正则表达式的问题

问题描述:

我有一个问题,用正则表达式硒IDE正则表达式的问题

它给出了这样的错误:

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

注:我注意到,硒IDE放入多余的斜线后我将光标移动到包含我输入的所有IDE命令的文本框。

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

storeEval与storeLocation位于不同的行上。我不适用于*的编辑器。 – Remy 2011-06-06 15:29:26

+0

我为你解决了这个问题。有关将来的参考资料,请参阅:http://*.com/editing-help – 2011-06-06 15:55:48

你的正则表达式是无效的:在JavaScript方面(因为,正如你可能知道,参数storeEval是一个JavaScript表达式)的正则表达式对象速记构造函数的一般形式是:

<variable> =/<your-regex>/

重要的含义是,<your-regex>可能包含任何virgules(/),除非你用正确的逃生反斜杠他们。你这样做对你的表达最后的短斜线,但你必须这样做,为他们每个人,所以我加入了三个反斜杠得到这个:

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

请注意,你甚至可以验证您的正则表达式就在这里SO(!):看看你最初的代码片段,你会看到只有/https:/在勃艮第高亮;我的代码片段位于整个右侧,在勃艮第中突出显示。

此修复应该让你更远;还没有在Selenium中检查过它是否能解决你的整个问题。

${CurrentUrl}返回变量的值作为文本文本,但由于您想在javascript中使用该变量,因此需要通过storedVars数组访问该变量。因此,如果您将脚本更改为以下版本,它应该可以正常工作:

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