我想将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'的当前值得到它。
感谢。
答案 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());
}