0

Java コードからスニペット JavaScript に Java 変数を渡したい。どうすればそれを実行できますか?

たとえば、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 に答える