【问题标题】:how to clone browser instance in watin如何在watin中克隆浏览器实例
【发布时间】:2011-10-06 13:35:18
【问题描述】:

我需要克隆浏览器实例,因为 IE 是共享资源,因此很难存储以前的浏览器实例

var browser = new IE(http://www.stackoverflow.com);

var copybrowser = browser;

browser.goto("http://www.superuser.com");

console.WriteLine(browser.Uri);
console.WriteLine(copybrowser.Uri);

output:
http://www.superuser.com
http://www.superuser.com

在这种情况下我需要存储之前的实例,我在 watin 中看到过 clone 方法,但是我想不起来,有没有人如何解决这个问题,我需要获取浏览器的之前的实例

【问题讨论】:

  • 在您的情况下,copybrowser 只是对 browser 指向的同一对象的 reference,因此它们显然是相同的。我什至不确定是否可以在 WatiN 中创建现有浏览器实例的克隆,因为当您执行 new IE(...) 时,它会启动一个全新的实例,并且“复制”所有您现有浏览器实例的状态(您可能已经导航到某个地方,填写了许多表单字段等)。但更有趣的是:为什么你想这样做?这听起来更像是您试图以错误的方式解决问题......
  • 可能是我做错了方法...但我实际上需要这种方法...即使现在我也没有找到任何正确的方法.....
  • 当你说“但我实际上需要那种方法”时,你应该向我们解释为什么。正如我所说,听起来你可能试图以错误的方式解决问题(甚至是错误的问题):如果你解释你想要做什么,可能会有人向你建议一种替代方法.

标签: c# testing c#-4.0 c#-3.0 watin


【解决方案1】:

只需创建一个具有浏览器属性的类

public class Session
{
    public Browser browser { get; set; }
    ...
    ...
}

在这种情况下,当每个实例都有自己的浏览器实例时,您可以创建多个 Session 实例。

【讨论】:

  • 可能是我需要对上述方法进行更多研究...我会尝试...并让您知道
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
  • 2021-07-23
  • 1970-01-01
  • 2015-03-19
  • 2011-01-12
  • 2017-05-19
  • 1970-01-01
相关资源
最近更新 更多