3

我正在使用 Selenium 2 WebDriver。由于以下原因,我从网站启动它而不是 UnitTest 项目:

  1. 它应该每 24 小时自动运行一次。我已经使用 System.Threading 编写了一些调度代码。
  2. 向客户提供一些 UI,以便在他们需要时在中间运行它。
  3. 在每次运行时,都会发送一封电子邮件作为测试结果的一部分。

我的目标网站是:http ://www.vroomvroomvroom.com.au

我创建了一个包含所有 Selenium 代码的类。我在 default.aspx 的页面加载时使用 System.Threading 调用该类。

当我通过按 F5 或 Ctrl+F5 (即使用 Visual Studio 开发服务器)从 Visual Studio 运行 default.aspx 时,它工作正常http://localhost:3251/default.aspx

但是,当我尝试使用默认端口(80)直接从 IIS 运行它时http://localhost/seleniumTest/default.aspx,它会因以下观察/错误而失败:

  1. 它运行 Selenium 代码到一个扩展,但不显示浏览器。
  2. 经过一些步骤后它失败了No response from server for url http://localhost:7094/hub/session/4bbe4b0c-aeee-4fa3-8bc0-aae47c6869af/element

我想要达到的目标是可能的。

仅供参考:如果需要更多详细信息,请告诉我。

4

1 回答 1

10

我自己设法找到了解决方案。

基本上,必须使用 RemoteWebDriver 而不是 FirefoxDriver。脚步:

  1. 将 FirefoxDriver 的初始化更改为 RemoteWebDriver 为:

从改变

IWebDriver driver = new FirefoxDriver();

DesiredCapabilities capability = DesiredCapabilities.Firefox();
Uri url = new Uri("http://REMOTE_IP:4545/wd/hub");
IWebDriver driver = new RemoteWebDriver(url, capability);

2. 下载 Selenium 独立服务器并使用 ~ 通过命令提示符启动它

java -jar E:\Software\selenium-server-standalone-2.24.1.jar -interactive -port 4545

这种方法有两个好处:

  1. 可以使用本地 IIS 来运行测试。
  2. 测试可以远程运行。请参阅 Selenium RC 文档。可以使用远程查看屏幕截图

    REMOTE_IP:4545/wd/hub/static/resource/hub.html

我正在考虑修改其中使用的 hub.html 和 client.js 文件的代码,以提供更好的远程感觉。

我希望这对其他人也有用。

供参考:

  1. IP 地址 REMOTE_IP 可以更改为任何实时 IP 地址或本地主机。在发起页面请求时使用上述端口。
  2. 独立服务器的启动/停止代码可以安装在测试中,以便通过批处理文件自动启动/停止。
  3. 通过不关闭命令提示符来保持服务器运行。
于 2012-08-01T04:46:52.843 回答