【问题标题】:Can we run Selenium WebDriver Test case with IIS, instead of Visual Studio Development server我们可以使用 IIS 而不是 Visual Studio 开发服务器运行 Selenium WebDriver 测试用例吗
【发布时间】:2012-07-25 16:09:39
【问题描述】:

我正在使用 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.

但是,当我尝试使用默认端口 (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 执行一些步骤后失败

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

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

【问题讨论】:

  • 请发布您所说的错误/执行/堆栈跟踪。 Selenium 与网络服务器没有依赖关系——IIS、Apache、Glass Fish、WLS.. 因为它是一个独立的代理。
  • 有 2 个观察/错误: 1. 它没有打开浏览器,但测试继续运行。我可以通过关联调试器来验证这一点。 2.搜索3-4个字段/控件后,它给出响应超时。
  • @AshwinPrabhu :我已经更新了完整的问题以提供更多的理解。

标签: asp.net iis selenium webdriver selenium-webdriver


【解决方案1】:

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

基本上,必须使用 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

这种方法有两个好处:

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

【讨论】:

  • 非常感谢,我遇到了类似的情况,即驱动程序没有从 IIS 启动。在我的情况下,只是 URL 的一个小区别,我设置如下: Uri url = new Uri("LOCALHOST:4545/wd/hub");
猜你喜欢
  • 2015-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
  • 2010-10-02
  • 2023-04-01
相关资源
最近更新 更多