【问题标题】:How to execute a user defined JavaScript function using executeScript method of Selenium Java web driver如何使用 Selenium Java Web 驱动程序的 executeScript 方法执行用户定义的 JavaScript 函数
【发布时间】:2015-05-05 06:18:48
【问题描述】:

这是我目前使用 Selenium 执行函数的代码:

JavascriptExecutor js=(JavascriptExecutor) driver;    
script="startDialog('arg1','arg2');";    
js.executeScript(script);    

要执行的Javascript函数:

$(document).ready(function() {    
    var Btn = document.getElementById("btnid");  
    Btn.onclick = function() {  
    startDialog("arg1", "arg2");  
   };  
});

无法使用 Selenium Java Web 驱动程序的 executeScript 函数执行 startDialog 函数。

【问题讨论】:

  • 网络驱动程序异常未定义不是函数。
  • 异常说 startDialog 没有定义,因此需要先定义。 JavaScriptExecutor 找到函数后就会正常工作。

标签: java javascript selenium


【解决方案1】:

startDialog 在哪里定义?您引用的函数没有命名,仅调用 startDialog。

当然异常是正确的。您尝试调用的函数未定义。

【讨论】:

  • startDialog在js文件中定义
【解决方案2】:

脚本必须是准确的 java 脚本,而不是函数名。尝试为脚本变量分配函数体,然后执行它。 像这样——

script="$(document).ready(function() {" +     
"var Btn = document.getElementById('btnid');"+  
"Btn.onclick = function() {" +
"startDialog('arg1', 'arg2');};});"

【讨论】:

    猜你喜欢
    • 2016-09-24
    • 1970-01-01
    • 2014-07-23
    • 2023-03-07
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多