首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS Edge:无法通过Capabilities.getVersion()获得浏览器版本

MS Edge:无法通过Capabilities.getVersion()获得浏览器版本
EN

Stack Overflow用户
提问于 2017-02-08 22:11:16
回答 2查看 1.4K关注 0票数 0

我有一个使用Java的Selenium项目,它使用不同的浏览器。我正在尝试介绍MS,但是在使用getVersion()方法时遇到了困难。下面是初始化浏览器的方法的代码片段。WebDriver“驱动程序”在类的开头声明。

代码语言:javascript
复制
            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();

在“启示录”中的调试过程中,当我在初始化“caps”对象后悬停在“caps”对象上时,它向我展示了以下功能:{acceptSslCerts=true、acceptSslCerts=true platformVersion=10、browserName=MicrosoftEdge、takesScreenshot=true、pageLoadStrategy=normal、takesElementScreenshot=true、platformName=windows、platform=ANY}

字符串browserName显示为"MicrosoftEdge",而browserVersion则为空。我预计结果会是"25.10586.672.0“

EN

回答 2

Stack Overflow用户

发布于 2017-02-15 03:37:08

尝试以下方法

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2018-11-06 09:29:49

在firefox和Edge中,您需要指定需要其值的字段名--所以请这样做:

代码语言:javascript
复制
Capabilities capabilities = ((RemoteWebDriver) webDriver).getCapabilities();
String browserVersion = capabilities.getCapability("browserVersion").toString();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42124602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档