2012-01-03 124 views
4

我有2个问题:硒的webdriver饼干/使用Web浏览器已经打开

  • 我已经建造了硒的webdriver脚本作品的权利,但他打开火狐的新实例。是否可以使用已打开的Firefox?如果是的话,怎么样?

  • 我需要向该网站发送信息,以使我的会话保持活动状态。我打算每10分钟使用一次cookie并发送一个请求。我不知道这是否是一个好主意......(我不能用硒认证,因为网站生成像银行网站数字表)

如果任何人都可以给我一些支持。 ..

回答

3

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

browserSessionReuse

下面SO后会解释为什么会话可能会过期。它也可能取决于你如何编写测试用例(可能是你正在使用setUp()方法初始化它)。 Selenium in -browserSessionReuse mode launchs a new browser

注:它始终是更好地创建和关闭每个测试的浏览器实例的测试隔离。

+0

太好了。感谢您的回复Pangea。 – Matt 2012-01-03 20:03:49

+0

从硒服务器帮助文档 -browserSessionReuse:停止测试之间浏览器的重新初始化和产卵。我试图手动运行2个测试,但它没有在同一个会话中运行。这是为了不同的目的吗? – 2012-01-04 04:18:20

+0

我接受的答案,但我已经发布了2个问题... – Matt 2012-01-04 11:23:25

0

如果您在测试用例中使用了firefox webdriver打开了FireFox Browser的实例,并且未关闭该实例,则可以将该实例用于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/

相关问题