0

全て、

Webdriver プロジェクトで Navigation Timing API を使用しようとしています。これは私が試したものですが、エラーがスローされます

public static Dictionary<String, Object> getTimingAPI(){
		try{
			Dictionary<String, Object> dict = new Hashtable<String, Object>();
			dict =   (Dictionary<String ,Object>) ((JavascriptExecutor)driver)executeScript("var performance = window.performance || window.webkitPerformance || window.mozPerformance || window.msPerformance || {}; var timings = performance.timing || {};return timings;");
			return dict;
		}catch (Exception e) {
		       System.err.println("Find browser timing : " + e);
	     }
		return null;
	}

エラー: :

java.lang.ClassCastException: com.google.common.collect.Maps$TransformedEntriesMap cannot be cast to java.util.Dictionary

.

String 、 Object などにキャストしようとしましたが、常にエラーがスローされます。この Java スクリプトの戻りオブジェクトはどうなるのだろうと思っています。

あなたの助けに感謝。

4

2 に答える 2

1

このように動作します。

Map(String, Object) map = new HashMap(String, Object)();

map = (Map(String, Object)) ((JavascriptExecutor) ドライバー) .executeScript(JS_SCRIPT);

于 2016-02-09T13:28:46.820 に答える
0

すべてのタイミングを返すのではなく、個々のタイミングを返し、オブジェクトに割り当てられるように JS を変更することで、これを解決しました。

Object start =    (Object) ((JavascriptExecutor) NavigationHelper.getWebDriver()).executeScript("var performance = window.performance || window.webkitPerformance || window.mozPerformance || window.msPerformance || {}; var timings = performance.timing.navigationStart || {};return timings;");

于 2014-10-30T05:45:51.163 に答える