使用PhantomJsDriver(GhostDriver)來測試我的Web應用程序。 嘗試訪問使用像調用本地存儲的值:PhantomJSDriver(GhostDriver)無法使用javascript獲取localStorage值
(String) js.executeScript(String.format("return localStorage.getItem('%s');", key));
在初始化的webdriver我設置的能力:
DesiredCapabilities dCaps = new DesiredCapabilities()
dCaps.setJavascriptEnabled(true)
dCaps.setCapability("webStorageEnabled", true)
return new PhantomJSDriver(dCaps)
接收WebDriverException試圖執行上面的JS,從它看起來像webStorageEnabled
已從未設置爲true:
org.openqa.selenium.WebDriverException:{ 「的errorMessage」:「SECURITY_ERR:請求「:{」headers「:{」Accept「:」application/json, image/png「,」Connection「:」Keep-Alive「,」Content-Length「:」98「 , 「內容類型」:「應用/ JSON; charset = utf-8「,」Host「:」localhost:20884「},」httpVersion「:」1.1「,」method「:」POST「,」post「:」{\「args \」:[], \「script \」:\「return localStorage.getItem('cartId_136d7735-13d7-8178-8abf-010beb62f8cf'); \」}「,」url「:」/ execute「,」urlParsed「:{」anchor「: 「」, 「查詢」: 「」, 「文件」: 「執行」, 「目錄」: 「/」, 「路徑」: 「/運行」, 「相對」: 「/運行」, 「口」: 「」 , 「宿主」: 「」, 「密碼」: 「」, 「用戶」: 「」, 「用戶信息」: 「」, 「權威」: 「」, 「協議」: 「」, 「源」:「/執行「,」queryKey「:{},」chunks「:[」execute「]},」urlOriginal「:」/ session/5f67ce30-310a-11e4-83c7-6d52cfce6b64/execute「}} 命令持續時間或超時時間:8毫秒構建信息:版本: '2.39.0',修訂版: '14fa800511cc5d66d426e08b0b2ab926c7ed7398',時間: '2013年12月16日13時18分38秒'
驅動程序信息:org.openqa.selen ium.phantomjs.PhantomJSDriver 能力[{平臺= MAC,acceptSslCerts =假, javascriptEnabled =真,browserName = phantomjs,可旋轉=假, driverVersion = 1.1.0,locationContextEnabled =假,版本1.9.7 =, cssSelectorsEnabled =真,databaseEnabled =假,handlesAlerts =假, browserConnectionEnabled =假,webStorageEnabled =假, nativeEvents =真,代理= {的proxyType =直接}, applicationCacheEnabled =假,DRIVERNAME = ghostdriver, takesScreenshot = FALSE}]在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newIns ,孟清湘(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
可能是什麼我遇到的問題的原因?應該可以爲PhantomJSDriver設置webStorageEnabled嗎?如果不是,我該如何解決這個問題?
這是一個有點不同。您仍然可以使用JavaScript訪問localStorage。我之所以發生這個問題,是因爲別的東西 - 我試圖在WebDriver初始化後訪問localStorage,但在**之前**我做了driver.get(url)。 – Stas 2014-09-04 15:00:03