无效字符'#'ExecuteScript

本文关键字:ExecuteScript 字符 无效 | 更新日期: 2023-09-27 18:01:17

我试图运行ExecuteScript,并得到这个错误

Invalid character '#' 

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

我是这样运行脚本的

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

我在这里做错了什么?

我正在使用PhantomJSDriver .

i try this to find error

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

这是我得到的

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

无效字符'#'ExecuteScript

您正在为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' )");