0

我想将一个 java 变量从 java 代码传递给一个片段 javascript。请问我该怎么做?

例如,从 java 我想将一个名为 'index' 的 java 变量传递给这样的片段 javascript

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("myJavascript.js") 

myJavascript.js 是这个:

var index=arguments[1]; return $('.title')[index];

我受到网站http://docs.seleniumhq.org/docs/03_webdriver.jsp#introducing-the-selenium-webdriver-api-by-example 的启发,编写了以下不起作用的代码:

int index=0;

for(int index = 0; index < counter; index++){

         WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("var index=arguments[1]; return $('.title')[index];");
         System.out.println(element.getText());
    }

当我将索引的值设置为 0,1,2,.... 时,上面的代码工作正常,但我想每次都从 java 的循环“for”的当前值中获取它。

谢谢。

4

2 回答 2

0

如果我正确地回答了您的问题,您需要这样做:

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("var index=arguments[1]; return $('.title')["+index+"];");
System.out.println(element.getText());

基本上你需要确保“索引”值取自循环变量——注意上面的双引号。

于 2013-10-29T11:07:54.780 回答
0

这应该有效:

for(int index = 0; index < counter; index++){
             WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('.title')[" + index + "];");
             System.out.println(element.getText());
        }
于 2013-10-29T11:08:01.657 回答