Javascript运行到java:如何将java变量传递给片段javascript?

时间:2013-10-29 10:44:51

标签: java javascript variables selenium-webdriver

我想将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'的当前值得到它。

感谢。

2 个答案:

答案 0 :(得分:0)

如果我正确地提出您的问题,您需要这样做:

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

基本上你需要确保从循环变量中取出“index”值 - 注意双引号在上面的位置。

答案 1 :(得分:0)

这应该有效:

for(int index = 0; index < counter; index++){
             WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('.title')[" + index + "];");
             System.out.println(element.getText());
        }