Selenium自動化讀取H5手機緩存
阿新 • • 發佈:2017-05-22
-o intern tor 包含 clas 返回值 必須 手機 緩存
所有已知實施類:
ChromeDriver, EdgeDriver, EventFiringWebDriver, FirefoxDriver, InternetExplorerDriver, OperaDriver, RemoteWebDriver, SafariDriver
接口方法概覽:
接口方法一:
方法概述: 在當前選定的框架或窗口的上下文中執行JavaScript。
在當前選定的框架或窗口的上下文中執行JavaScript。 提供的腳本片段將作為匿名函數的主體執行。在腳本中,使用文檔來引用當前文檔。 請註意,腳本完成執行後,盡管全局變量將持續存在,但局部變量將不可用。
如果腳本具有返回值(即如果腳本包含返回語句),則將執行以下步驟:
腳本 - 要執行的JavaScript
args - 腳本的參數。 可能是空的
返回: Boolean,Long,Double,String,List或WebElement之一。 或空。 實戰Demo: 如何用JavascriptExecutor 讀取手機LocalStorge鍵值(節選主要實現代碼)
原文鏈接:http://www.cnblogs.com/zishi/p/6890675.html
前言:
由於Selenium本身並不包括讀取H5手機緩存的封裝,所以考慮使用JavascriptExecutor接口實現。
JavascriptExecutor接口簡介:
接口聲明: public interface JavascriptExecutor 表示驅動程序可以執行JavaScript,提供對機制的訪問。 由於跨域策略,瀏覽器強制執行腳本執行可能會意外失敗,且沒有足夠的錯誤消息傳遞。 這在創建自己的XHR請求或嘗試訪問另一個幀(frame)時特別有用。 大多數情況下在排除故障時,最好在執行WebDriver請求後查看瀏覽器的控制臺。executeAsyncScript(java.lang.String script, java.lang.Object... args)
方法概述:在當前選定的框架或窗口的上下文中執行異步JavaScript。
接口方法二:
executeScript(java.lang.String script, java.lang.Object... args)
- 對於HTML元素,此方法返回WebElement
- 對於十進制,返回Double
- 對於非十進制數,返回Long
- 對於一個布爾值,返回一個布爾值
- 對於所有其他情況,返回一個String
- 對於一個數組,返回一個List <Object>,每個對象遵循上面的規則。 我們支持嵌套列表。
- 除非值為空或沒有返回值,否則返回null
腳本 - 要執行的JavaScript
args - 腳本的參數。 可能是空的
返回: Boolean,Long,Double,String,List或WebElement之一。 或空。 實戰Demo: 如何用JavascriptExecutor 讀取手機LocalStorge鍵值(節選主要實現代碼)
//註:storagename是期望讀取的LocalStorge鍵值 //public interface IWebDriver Member of OpenQA.Selenium public static string GetLocalStorgeKey( IWebDriver driver, string storagename) { string js = "return window.localStorage.getItem(‘" + storagename + "‘);"; IJavaScriptExecutor jse = (IJavaScriptExecutor )driver; return (String )jse.ExecuteScript(js); }
類似的寫緩存操作應該調用setItem方法:localStorage.setItem(‘testObject‘, ‘abc‘);
偽代碼(未調試)就應該如下:(註:此處set方法不需要返回值)
stringjs ="window.localStorage.setItem(‘"+ storagename +"‘,‘"+ storagevalue +"‘);"; IJavaScriptExecutor jse = (IJavaScriptExecutor )driver; jse.ExecuteScript(js);
主要參考文獻: JavascriptExecutor: http://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html HTML5 Local Storage: https://www.w3schools.com/html/html5_webstorage.asp Storing Objects in HTML5 localStorage: http://stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage 作者原創技術文章,轉載請註明出處
Selenium自動化讀取H5手機緩存