【问题标题】:Webdriver - Opening a new browser with the same profileWebdriver - 打开具有相同配置文件的新浏览器
【发布时间】:2013-05-20 14:12:19
【问题描述】:

我正在 Firefox 上使用 Webdriver 为 Web 应用程序运行一些 java 测试,试图验证“保持登录”按钮的功能。每次启动新浏览器时,都会使用新的配置文件。有没有办法指示它使用与以前相同的配置文件打开新浏览器,即登录并按下“让我登录”的那个?如果这个问题没有意义,我很抱歉,我对此还是有点陌生​​。

谢谢,

拉格纳

【问题讨论】:

    标签: junit webdriver


    【解决方案1】:

    目前这是不可能的。每次启动浏览器时,WebDriver 都会使用新的配置文件(尽管您可以使用现有的配置文件作为模型)。您可以在Selenium tracker 中提出功能请求

    【讨论】:

      【解决方案2】:

      您可以将FirefoxProfile 与现有配置文件一起使用:

      FirefoxProfile profile = new FirefoxProfile(path to profile dir);
      WebDriver driver = new FirefoxDriver(profile);
      

      【讨论】:

      • 谢谢,但这无济于事。我绝对需要使用新的个人资料登录并每次单击“保持登录”按钮,然后使用相同的个人资料加载新页面。
      • @Ragnar - 最后一条评论与您在原始问题中提出的内容相冲突。在您最初的问题中,您询问是否有办法重用个人资料,然后在此评论中您说“我绝对需要一个新的个人资料才能登录”。那么,它是什么?你真正想要的是什么?对我来说,ZloiAdum 的这个答案在我看来是正确的答案。您也可以复制一个新的配置文件,然后根据需要专门引用它。
      • @djangofan:我问这个问题已经有几年了,但我认为我对那个评论还不够清楚。如果我没记错的话,我需要的是每次运行“保持登录”测试时使用一个新的配置文件,即新的配置文件点击保持我登录,登录,关闭浏览器,重新启动浏览器,验证保持我登录正常工作,关闭浏览器并丢弃配置文件。冲洗并重复。使用现有配置文件会与该项目的测试要求发生冲突。
      【解决方案3】:

      你不能通过获取一个新的 WebDriver 实例来做到这一点。 但是您可以使用 JavaScript 来做到这一点,如下所示

      ((JavascriptExecutor)webDriver).executeScript("window.open('"+ConfigLocator.getTargetServer()+"', '_blank');");
      

      【讨论】:

        【解决方案4】:

        首先,正如 Jarib 所说,可以使用现有配置文件作为模型。这意味着不会真正加载收藏夹、历史记录、主页等特定数据。但是有可能为驱动程序设置一些特殊的系统属性。

        webdriver.reap_profile
        

        如果临时文件和配置文件不应删除

        ,则应为“真”
        System.setProperty("webdriver.reap_profile", "true");
        

        很可能也有可能在您的情况下使用这种解决方案。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-25
          • 2016-08-02
          • 1970-01-01
          • 2016-10-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多