4

我正在一个复杂的基于 Web 的应用程序上编写 selenium 脚本。

要使用用户帐户,我需要先使用一个 URL 进行注册,然后在另一个 URL 上的管理控制台中批准该帐户。

问题是还有另一个用于注册和管理控制台的 baseURL,我需要在一个单元测试中使用它。

但是当我在测试中使用 setBaseUrl 时,它会被忽略并使用旧的 baseURL。之后我什至调用了 start() ,但没有改变......

有什么我不知道的技巧吗?我在这个问题上玩了很长时间并调试了很长一段时间,但是解耦的(测试 <-> RCServer)硒测试并没有让它更容易通过...... ;-)

4

2 回答 2

3

由于您标记了这个 selenium-rc,我假设您使用 rc。

只需在测试客户端中使用两个单独的 selenium 实例。没有理由在一个类中只有一个 selenium 实例。在我看来,这更加清晰,因为您正在与两个不同的用户界面交谈。

在服务器端,您仍然只需要一个。如果请求使用两个客户端实例,服务器将愉快地启动两个浏览器实例。

莫里茨

编辑:只是为了添加这个,现在可以随时创建一个硒实例

Selenium s = new DefaultSelenium("localhost", 4444, "*chrome", 
            "http://your-target-url");

假设 selenium 服务器位于 localhost 端口 4444 上。

于 2010-05-12T19:58:36.157 回答
1

OK Selenium 似乎不是为这种工作流程构建的。

我已将测试类分成三个测试类。

  1. 使用第一个 baseURL 进行基本注册
  2. 使用 seconf baseURL 批准
  3. 再次使用第一个 baseURL 的简单任务

这不像将内容包含在一个测试用例中那样干净,因为从业务角度来看它属于一起。但至少它有效,我不必为此破解硒。

于 2010-05-12T11:28:34.547 回答