Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Selenium Java web驱动程序的executeScript方法执行用户定义的JavaScript函数_Java_Javascript_Selenium - Fatal编程技术网

如何使用Selenium Java web驱动程序的executeScript方法执行用户定义的JavaScript函数

如何使用Selenium Java web驱动程序的executeScript方法执行用户定义的JavaScript函数,java,javascript,selenium,Java,Javascript,Selenium,这是迄今为止我使用Selenium执行函数的代码: JavascriptExecutor js=(JavascriptExecutor) driver; script="startDialog('arg1','arg2');"; js.executeScript(script); 要执行的Javascript函数: $(document).ready(function() { var Btn = document.getElementById("btni

这是迄今为止我使用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在哪里定义?您引用的函数没有命名,只调用startDialog


例外情况通常是正确的。您试图调用的函数未定义。

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

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

未定义的web驱动程序异常不是一个函数。该异常表示未定义startDialog,因此需要先定义。JavaScriptExecutor一旦找到js文件中定义的函数.startDialog,就会很好地工作