当前位置: 首页 > 知识库问答 >
问题:

MS Edge:无法通过Capabilities.get版本获取浏览器版本()

慕容安易
2023-03-14

我有一个使用不同浏览器的Java的Selenium项目。我正在尝试介绍MS Edge,但是在使用功能中的getVersion()方法时遇到问题。下面是初始化浏览器的方法的代码片段。WebDriver “driver” 在类的开头声明。

            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中调试期间,当我在初始化“caps”对象后将其悬停在该对象上时,它会显示以下内容:Capabilities〔{acceptSslCerts=true,browserVersion=25.10586.672.0,platformVersion=10,browserName=MicrosoftEdge,takesScreenshot=true,pageLoadStrategy=normal,takesElementScreenshot=true,platformName=windows,platform=ANY}〕

字符串browserName显示为“MicrosoftEdge”,但browserVersion显示为空。我预计会是“25.10586.672.0”

共有2个答案

阚允晨
2023-03-14

在firefox和Edge中你需要指定你需要它的值的字段名称——所以请这样做:

Capabilities capabilities = ((RemoteWebDriver) webDriver).getCapabilities();
String browserVersion = capabilities.getCapability("browserVersion").toString();
邢修明
2023-03-14

尝试下面的方法

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;
 类似资料:
  • 本文向大家介绍javascript 获取浏览器版本,包括了javascript 获取浏览器版本的使用技巧和注意事项,需要的朋友参考一下 工作中需要通过JS去获取当前使用的浏览器的名字以及版本号,网上大堆资料都有一个关键词是 navigator.appName,但是这个方法获取的浏览器的名字只有两种要么是IE要么就是Netscap,倒是可以用来判断是否使用了IE,但是我想获取具体的浏览器产品名字比如

  • 问题内容: 我将如何使用浏览器版本? 问题答案: 该属性是一个字典,其中包含有关浏览器本身的信息,因此这应该可以工作:

  • 本文向大家介绍Js 获取、判断浏览器版本信息的简单方法,包括了Js 获取、判断浏览器版本信息的简单方法的使用技巧和注意事项,需要的朋友参考一下 Navigator 对象包含有关浏览器的信息: •appCodeName -- 浏览器代码名的字符串表示 •appName -- 官方浏览器名的字符串表示 •appVersion -- 浏览器版本信息的字符串表示 •cookieEnabled -- 如果启

  • 我在Ubuntu Server中设置了一个Selenium Grid,在Ubuntu Desktop中设置了一个Hub,在Ubuntu Desktop中设置了一个Node。Node上的GoogleChrome版本是。我创建会话的python代码是 但是当我传递时,它会出错 硒。常见的例外情况。WebDriverException:消息:转发新会话时出错,找不到:功能{browserName:chr

  • 本文向大家介绍.NET获取客户端的操作系统版本、浏览器版本和IP地址,包括了.NET获取客户端的操作系统版本、浏览器版本和IP地址的使用技巧和注意事项,需要的朋友参考一下 我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取。 .NET 获取客户端的操作系统 请看下面的代码,我们首先