2015-05-14 55 views
0

是否可以從Selenium JavascriptExecutor中修改Java變量的值?在JavascriptExecutor中修改Java變量

我知道可以在JavascriptExecutor中訪問Java變量作爲'"+myjavavar+"',但我們如何修改它?

如果我使用'"+myjavavar+"'= somenewvalue;,則會失敗,並顯示錯誤"invalid assignment left-hand side"

+1

您可能會在這裏混淆java和javascript。你想通過'JavascriptExecutor'修改* javascript變量*,對嗎? – alecxe

+0

@alecxe不,我想通過JavascriptExecutor訪問和修改一個java變量。 – bpk

+4

你能否添加更多關於這種需求背後動機的細節? – alecxe

回答

1

您可以通過JavascriptExecutor獲取並設置JavaScript變量。要在您執行的每個腳本中提供的測試會話期間擁有「全局」變量,請將其保留在global window object上。例如:

JavascriptExecutor js = (JavascriptExecutor) driver; 

// set the value (note how the arguments are passed into) 
js.executeScript("window.myvar = arguments[0];", "Test"); 

// get the value (note the "return") 
String myvar = (String) js.executeScript("return window.myvar;"); 
System.out.println(myvar); 
+0

謝謝...!很公平。 – bpk