Selenium + C#:ExecuteAsyncScript 不起作用
Posted
技术标签:
【中文标题】Selenium + C#:ExecuteAsyncScript 不起作用【英文标题】:Selenium + C#: ExecuteAsyncScript not working 【发布时间】:2016-04-29 13:38:21 【问题描述】:我正在尝试通过 Selenium 驱动程序运行 javascript。 executeAsyncScript 参数给出输入字符串格式不正确的异常。 javascript 在提供的路径中。 javascript函数实际上是一个onclick,它不带任何参数,而是返回一个我想得到的值以供进一步计算。
Driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(5));
var js = Driver as IJavaScriptExecutor;
var formobject = js.ExecuteAsyncScript(
"var callback = arguments[0];"
+ "var params = arguments;"
+ "require(['Recruiting/Modules/CandidateProfile'],function(onPrint)"
+ "onPrint("
+ ",callback"
+ "););"
);
【问题讨论】:
回调前的逗号是干什么用的?不应该说 onPrint(callback) 吗?我想你可能对所有的串联感到困惑。 这看起来不像是有效的 JS。 【参考方案1】:我认为您的 javascript 语法不正确。如果你省略引号,你会得到:
var callback = arguments[0];
var params = arguments;
require(['Recruiting/Modules/CandidateProfile'],function(onPrint)
onPrint(
,callback
););
参见onPrint
之后和callback
之前的,
。
【讨论】:
以上是关于Selenium + C#:ExecuteAsyncScript 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Selenium:使用 C# 在 IWebElement 上触发鼠标滚轮
C# + Selenium + ChromeDriver 爬取网页