Selenium ExecuteScript

时间:2015-07-06 13:28:14

标签: c# .net selenium phantomjs

我尝试运行ExecuteScript,并且我发现了这个错误

Invalid character '#' 

但我从控制台Fife-Fox(调试)测试了这个脚本的所有工作。

这是我如何运行脚本。

IJavaScriptExecutor js = browserToRun as IJavaScriptExecutor;
 js.ExecuteScript("'$('#accountListCell').find('option[value='123']').trigger( 'change' )'");

我在这里做错了什么?

我使用的是PhantomJSDriver。

我试图找到错误

string test= "$('\#accountListCell').find('option[value='123']').trigger( 'change' )

这就是我得到的

$('#accountListCell').find('option[value='444-135777']').trigger( 'change' )

1 个答案:

答案 0 :(得分:1)

您正在为WebDriver提供脚本。它必须是单个字符串。您已使用"引号来提供脚本。我们来看看你提供的脚本:

'$('#accountListCell').find('option[value='123']').trigger( 'change' )'

你注意到的第一件事是语法高亮是完全错误的。 $不是脚本中的字符串,因此将其写入字符串中是没有意义的。删除第一个和最后一个'

$('#accountListCell').find('option[value='123']').trigger( 'change' )

现在更好了。还有一个问题。如果查看find参数,则它是另一个子字符串。 CSS字符串可以包含在'以及"中。有时你甚至不需要引号。使用

$('#accountListCell').find('option[value=\"123\"]').trigger( 'change' )

因为如果要在"中包含的字符串中使用它,或者只是

,则必须转义"
$('#accountListCell').find('option[value=123]').trigger( 'change' )

决赛:

js.ExecuteScript("$('#accountListCell').find('option[value=\"123\"]').trigger( 'change' )");