2017-02-08 1 views
0

У меня есть проект Selenium с использованием Java, который использует разные браузеры. Я пытаюсь представить MS Edge, но не могу использовать метод getVersion() из Capabilities. Ниже приведен фрагмент кода из метода, который инициализирует браузер. WebDriver «driver» объявлен в начале класса.MS Edge: невозможно получить версию браузера через Capabilities.getVersion()

  if(strBrowser.equalsIgnoreCase("Edge")) 
     { 
      String FileName=m1.get("TOOLS_PATH").toString()+"//MicrosoftWebDriver.exe"; 
      System.out.println("Full path to Edge executable: " + FileName); 

      File edgeDriver = new File(FileName); 
      System.setProperty("webdriver.edge.driver", edgeDriver.getAbsolutePath()); 

      DesiredCapabilities caps = DesiredCapabilities.edge(); 

      driver = new EdgeDriver(caps); //launches Edge browser 


     } 


     Capabilities caps = ((RemoteWebDriver) driver).getCapabilities();   
     String browserName = caps.getBrowserName(); 
     String browserVersion = caps.getVersion().toString(); 

Во время отладки в ecliipse, когда я наведении на объект 'шапочек' после его инициализации, он показывает мне следующее: Capabilities [{acceptSslCerts = истина, browserVersion = 25.10586.672.0, platformVersion = 10 , browserName = MicrosoftEdge, принимаетScreenshot = true, pageLoadStrategy = normal, принимаетElementScreenshot = true, platformName = windows, platform = ANY}]

Строка browserName выглядит как «MicrosoftEdge», но browserVersion выходит пустым. Я бы ожидать, что бы выйти, чтобы быть «25.10586.672.0»

ответ

0

Попробуйте ниже подход

String browser_version = null; 
    Capabilities cap = ((RemoteWebDriver) browserDriver).getCapabilities(); 
    String browsername = cap.getBrowserName(); 
    // This block to find out IE Version number 
    if ("internet explorer".equalsIgnoreCase(browsername)) { 
     String uAgent = (String) ((JavascriptExecutor) browserDriver).executeScript("return navigator.userAgent;"); 
     System.out.println(uAgent); 
     //uAgent return as "MSIE 8.0 Windows" for IE8 
     if (uAgent.contains("MSIE") && uAgent.contains("Windows")) { 
      browser_version = uAgent.substring(uAgent.indexOf("MSIE")+5, uAgent.indexOf("Windows")-2); 
     } else if (uAgent.contains("Trident/7.0")) { 
      browser_version = "11.0"; 
     } else { 
      browser_version = "0.0"; 
     } 
    } else 
    { 
     //Browser version for Firefox and Chrome 
     browser_version = cap.getVersion();// .split(".")[0]; 
    } 
    String browserversion = browser_version.substring(, browser_version.indexOf(".")); 
    return browsername + " " + browserversion; 
Смежные вопросы