我们可以使用 IIS 运行 Selenium WebDriver 测试用例,而不是 Visual Studio 开发服务器吗

问题描述 投票:0回答:2

我正在使用 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 运行 default.aspx 时,它工作正常,即使用 Visual Studio 开发服务器,例如

http://localhost:3251/default.aspx

但是,当我尝试直接从 IIS 运行它时,使用默认端口 (80),例如

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

我想要实现的目标是可能的。

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

asp.net iis selenium webdriver selenium-webdriver
2个回答
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 Standalone 服务器并使用 ~

通过命令提示符启动它
java -jar E:\Software\selenium-server-standalone-2.24.1.jar -interactive -port 4545

这种方法有 2 个好处:

  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. 不关闭命令提示符以保持服务器运行。

-3
投票

我也在使用 Selenium 2 WebDriver。你们能帮我解决这个网站吗https://www.acmeselfdrivecars.com/

© www.soinside.com 2019 - 2024. All rights reserved.