我有以下问题。当我开始我的selenium测试时,为了进入实际测试的部分,我需要启动浏览器,登录,执行其他操作,然后它就是我要测试的部分。
有没有办法只做一次第一部分,让会话和浏览器保持打开状态。并且对于下一个测试运行仅继续此会话,而不启动。
所以基本上我会进行测试初始化,并使会话保持打开状态。 以及使用此初始化会话的其他测试,每次都重用会话。
我正在使用Java和Selenium RC。
谢谢!
答案 0 :(得分:1)
这取决于你的环境。我使用C#和Selenium RC(因此使用NUnit测试框架)。由于您使用Java(可能是JUnit),因此它的工作方式相同。 JUnit和NUnit都允许您指定在每次测试之前,每次测试之后,每个套件之前或每个套件之后执行的特殊代码。
在您的情况下,您希望提供在套件之前运行的代码(套件只是一个命名空间(C#)或类(Java)中所有测试用例的集合)。在C#中我使用这样的代码 - [TextFixtureSetUp]
指令让NUnit将其识别为套件设置代码。
[TestFixtureSetUp]
public void SetupTest()
{
selenium = Setup.StartSelenium();
Setup.Login();
Setup.Preliminaries();
}
Java中的等效名称是使用
中的@BeforeClass
属性
public class Example {
@BeforeClass
public static void onlyOnce() {
...
}
}
我最近的文章Web Testing with Selenium Sushi: A Practical Guide and Toolset非常关注C#,但它可能会为您提供一些可以应用于Java工作的一般性想法。
答案 1 :(得分:0)
我建议使用testng,它允许你使用java注释进行预处理,比如分别在使用@BeforeClass,@ BeforeSuite的类或测试套件之前调用某段代码。 在这里你可以定义selenium服务器实例化,浏览器调用要么在一类测试套件之前完成(还有许多其他选项也可用),然后这可以在后续的测试方法中重用。
答案 2 :(得分:0)
在一行中: 您可以使用firefox配置文件。
详细信息: 1.手动登录firefox(如果有的话,使用,记住我的网站选项。否则应该没问题) 2.转到Firefox菜单>帮助>故障排除信息>配置文件夹(单击它)。 3.当你调用selenium webdriver(虽然不确定RC)时,请使用此
sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
这样您就可以直接登录到自己的帐户。与新鲜的firefox配置文件
不同,从浏览器缓存中选取的数据也更快