Selenium Webdriver cookie /使用Web浏览器已经打开

时间:2012-01-03 17:51:23

标签: selenium

我有两个问题:

  • 我已经构建了一个正常工作的selenium webdriver脚本,但他打开了一个新的Firefox实例。是否可以使用已经打开的Firefox?如果是的,怎么样?

  • 我需要向网站发送信息,以保持我的会话处于活动状态。我想使用cookie并每10分钟发送一次请求。我不知道这是不是一个好主意...(我不能使用selenium authentification,因为该网站会生成一个包含银行网站数字的表格)

如果有人能给我一些支持......

2 个答案:

答案 0 :(得分:3)

如果您正在使用Seleium2 / WebDriver,那么您可以通过调用new FirefoxDriver()来创建启动浏览器实例,然后可以在多个测试中重复使用它。例如,如果您使用的是JUNIT,则可以在FirefoxDriver中创建@BeforeClass驱动程序并在@AfterClass中退出。

<强> browserSessionReuse

以下SO帖子将解释为什么会话可能会到期。它可能还取决于您编写测试用例的方式(可能是您在setUp()方法中初始化它)。 Selenium in -browserSessionReuse mode launchs a new browser

注意:最好通过每次测试创建和关闭浏览器实例来隔离测试。

答案 1 :(得分:0)

如果您在测试用例中使用firefox webdriver打开了FireFox浏览器实例并且尚未关闭该实例,则可以将该实例与RemoteWebDriver一起使用。如果一个测试用例失败并且您想手动启动另一个测试用例,您甚至可以使用该实例。 使用此代码。

IWebDriver WebDriver = null;

try
{
System.Uri uri = new System.Uri("http://localhost:7055/hub");
WebDriver = new RemoteWebDriver(uri, DesiredCapabilities.Firefox());
Console.WriteLine("Executed on remote driver");

}

catch (Exception)
{

WebDriver = new FirefoxDriver(firefoxProfile);
Console.WriteLine("Executed on New FireFox driver");

}

请参阅此博客文章中的详细信息。 http://binaryclips.wordpress.com/2014/09/16/selenium-web-driver-in-c-how-to-continue-script-on-the-already-opened-browser-instance/