2014-10-29 1 views
0

Все,Тип ошибки броска, когда я бросил WebDriver javascriptExecutor в словарь

Я пытаюсь использовать навигации Timing API в моем WebDriver проекте. Это то, что я пытался, но он бросает ошибку

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

Ошибка: :

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

.

Я попытался применить к String, Object и т. Д., Но всегда он вызывает ошибку. Мне интересно, каким будет объект возврата этого java-скрипта.

Цените свою помощь.

+0

Я решил это, изменив JS, чтобы вернуть отдельные тайминги и назначить объекту, вернув все тайминги. – bijumanvya

ответ

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;");

0

Таким образом, она работает.

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

map = (Карта (String, Object)) ((JavascriptExecutor)) .executeScript (JS_SCRIPT);

 Смежные вопросы

  • Нет связанных вопросов^_^