【问题标题】:Determine Type of Selenium Driver in Java确定 Java 中 Selenium 驱动程序的类型
【发布时间】:2015-05-14 13:37:58
【问题描述】:

我正在使用 selenium webdriver 为一些网站构建一个测试框架,我的目标是让多个驱动程序同时运行相同的测试(又名 firefoxdriver、internetexplorerdriver 和 chromedriver)同时使用一些共享资源)。但是,我无法记录哪个驱动程序正在做什么。我通过很多代码传递驱动程序,但据我所知,webdriver 不知道它是什么特定类型的驱动程序。有什么方法可以询问 webdriver 元素它被实例化为什么?

【问题讨论】:

    标签: java selenium-webdriver


    【解决方案1】:

    你可以用instanceof点赞

      if( driver instanceof FirefoxDriver) {
        System.out.println("Firefox it is!!");
      }
      else if( driver instanceof ChromeDriver) {
        System.out.println("Chrome it is!!");
      }
      // and so on 
    

    更多详情:What is the 'instanceof' operator used for?

    【讨论】:

    • 天哪。 用头撞桌子。谢谢。
    • 如果我们的测试使用 RemoteWebDriver 远程执行怎么办?
    • @san1deep2set3hi 使用capabilities.getBrowserName()
    【解决方案2】:
    /******************************************************************************************
     * Name: getBrowserDetails | Description: Gets Browser Name and Version
     ******************************************************************************************/
    public String getBrowserDetails() throws Exception {
        Capabilities caps = ((RemoteWebDriver)BaseTest.driver).getCapabilities();
        String browserName = caps.getBrowserName();
        String browserVersion = caps.getVersion();
        String browser = (browserName + " " + browserVersion).toUpperCase();
        return browser;
    }
    

    【讨论】:

    • 我们能否描述一下这如何回答这个问题?
    • 这将返回浏览器名称,根据浏览器名称我们可以决定它是什么类型的驱动程序
    【解决方案3】:

    如果使用instanceof,请务必同时考虑org.openqa.selenium.WrapsDriver,以便处理EventFiringWebDriver

    【讨论】:

      猜你喜欢
      • 2016-10-16
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多