【问题标题】:Selenium driver version // get_capabilities()Selenium 驱动程序版本 // get_capabilities()
【发布时间】:2017-04-19 20:04:12
【问题描述】:

我的 selenium 脚本(用 perl 编写)正在 firefox、chrome 和 IE 上使用/运行,正如我所期望的那样。我写了我自己的“Testrun logging”,这也很好。几天前,我有了包含 selenium 驱动程序版本的想法。 selenium 独立服务器版本可通过“$driver->status”获得。如果我的脚本在 chrome 上运行,我通过“$driver->get_capabilities()”找到了版本信息。但是对于ie,我还没有找到版本号。 对于 chrome,我得到一个像这样的哈希:

{
    acceptSslCerts               JSON::PP::Boolean  {
        Parents                  Types::Serialiser::BooleanBase
        public methods (0)
        private methods (0)
        internals: 1
    },
    applicationCacheEnabled      JSON::PP::Boolean  {
        Parents                  Types::Serialiser::BooleanBase
        public methods (0)
        private methods (0)
        internals: 0
    },
    browserConnectionEnabled     var{applicationCacheEnabled},
    browserName                  "chrome",
    chrome                       {
        chromedriverVersion      "2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed)",
        userDataDir              "C:\Users\me\AppData\Local\Temp\scoped_dir8684_28008"
    },
    cssSelectorsEnabled          var{acceptSslCerts},
    databaseEnabled              var{applicationCacheEnabled},
    handlesAlerts                var{acceptSslCerts},
    hasTouchScreen               var{applicationCacheEnabled},
    javascriptEnabled            var{acceptSslCerts},
    locationContextEnabled       var{acceptSslCerts},
    mobileEmulationEnabled       var{applicationCacheEnabled},
    nativeEvents                 var{acceptSslCerts},
    networkConnectionEnabled     var{applicationCacheEnabled},
    pageLoadStrategy             "normal",
    platform                     "XP",
    rotatable                    var{applicationCacheEnabled},
    takesHeapSnapshot            var{acceptSslCerts},
    takesScreenshot              var{acceptSslCerts},
    version                      "54.0.2840.99",
    webdriver.remote.sessionid   "eb545ef9-6a1b-4297-a239-ca595bafbec1",
    webStorageEnabled            var{acceptSslCerts}
}

因为我得到:

{
    browserAttachTimeout            0,
    browserName                     "internet explorer",
    cssSelectorsEnabled             JSON::PP::Boolean  {
        Parents                     Types::Serialiser::BooleanBase
        public methods (0)
        private methods (0)
        internals: 1
    },
    elementScrollBehavior           0,
    enableElementCacheCleanup       var{cssSelectorsEnabled},
    enablePersistentHover           var{cssSelectorsEnabled},
    ie.browserCommandLineSwitches   "",
    ie.enableFullPageScreenshot     var{cssSelectorsEnabled},
    ie.ensureCleanSession           JSON::PP::Boolean  {
        Parents                     Types::Serialiser::BooleanBase
        public methods (0)
        private methods (0)
        internals: 0
    },
    ie.fileUploadDialogTimeout      3000,
    ie.forceCreateProcessApi        var{ie.ensureCleanSession},
    ie.forceShellWindowsApi         var{ie.ensureCleanSession},
    ignoreProtectedModeSettings     var{ie.ensureCleanSession},
    ignoreZoomSetting               var{ie.ensureCleanSession},
    initialBrowserUrl               "http://localhost:48881/",
    javascriptEnabled               var{cssSelectorsEnabled},
    nativeEvents                    var{cssSelectorsEnabled},
    pageLoadStrategy                "normal",
    platform                        "WINDOWS",
    requireWindowFocus              var{ie.ensureCleanSession},
    takesScreenshot                 var{cssSelectorsEnabled},
    unexpectedAlertBehaviour        "dismiss",
    version                         11,
    webdriver.remote.sessionid      "b630495e-70fe-4d68-b4e4-cb24a57acab3"
}

但这里没有“chromedriverVersion”之类的东西。 有谁知道如何获取 IEDriver 的版本?

【问题讨论】:

    标签: perl google-chrome selenium internet-explorer firefox


    【解决方案1】:

    所以,我不太确定您是要记录 WebDriver 的版本还是浏览器的版本。如果是后者,则版本会打印在您问题的两个输出中。

    如果您要记录 webdriver 版本,则 IE 驱动程序在功能列表中似乎没有驱动程序版本(请参阅:DesiredCapabilities documentation 和 ChromeDriver Capabilities documentation)。据我所知,这些页面上列出的属性是您可以从 WebDriver 中读取的唯一属性。

    您可以尝试(在 Java 中,但我认为该方法在 Perl 中类似)

    driver.getCapability("InternetExplorerDriver.version"); // or something like this, 
    

    但据我所知,没有可供查询的 IE 驱动程序版本。

    【讨论】:

    • 我正在寻找驱动程序版本而不是浏览器版本。对于 IEDriver,我预计会获得 2.53.1,但由于您链接的 doku 没有提及 IEDriver 的驱动程序版本,我没想到会以某种方式获得它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 2013-02-14
    • 1970-01-01
    相关资源
    最近更新 更多