euc*_*135 1 javascript java selenium
我有一个要在页面加载后添加的动态函数。我需要这样做,因为函数名称取决于解析 HTML 后获得的某个变量。现在我已经这样做了:
规格:我在 PhantomJS 1.9.8 中使用 selenium 3.3.1
((JavascriptExecutor) driver).executeScript(" eval('function getVoteX1() { return 1; }')");
String testScript = (String)((JavascriptExecutor) driver).executeScript(" getVoteX1()");
System.out.println(testScript);
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,它会抛出错误:
Caused by: org.openqa.selenium.WebDriverException: {"errorMessage":"Can't find variable: getVoteX1","request":{"
注意:最终,getVoteX1 将被一些其他变量替换,但为了简单起见,我首先尝试了一个静态名称。
将新函数赋值给window对象,相当于定义了一个全局变量:
((JavascriptExecutor) driver).executeScript("window.getVoteX1 = function() { return 1; }");
String testScript = (String)((JavascriptExecutor) driver).executeScript(" getVoteX1()");
Run Code Online (Sandbox Code Playgroud)