无法在页面中找到控件,但仅当通过 selenium-server 运行时

发布于 2024-10-13 06:47:10 字数 1260 浏览 3 评论 0原文

我有一组使用 Firefox 中的 Selenium IDE 开发的测试。测试运行良好并且全部通过。现在我尝试将它们移植到 C# 并使用 MSTest 和 selenium-server 运行 IE 测试。以下是事件的顺序:

  1. 通过 Selenium IDE 在 Firefox 上运行所有测试。所有测试均通过。
  2. 将测试导出到 MSTest(Nunit 导出、重命名一些内容等)
  3. 启动 selenium-server-1.0.3
  4. 在 VS2008 中运行测试。 Selenium 设置为:selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost/theSite/");;请注意,我可以正常浏览到 http://localhost/theSite/

    4a。确认测试正在启动 Firefox。得到结果: 17:00:30.290 信息 - 正在准备 Firefox 配置文件... 17:00:33.842 INFO - 启动 Firefox...

  5. 第一次测试(控件“ctl00_TopNavBar_LoginStatus1”中的 waitForText“Login”)失败。找不到控件。 if ("Login" == selenium.GetText("id=ctl00_TopNavBar_LoginStatus1"))break; 或者 if ("Login" == selenium.GetText("ctl00_TopNavBar_LoginStatus1")) break;

  6. 所有其他测试也失败——同样的原因。每个测试的顶部都有一个waitForText

尝试在 *chrome、*iexploreproxy 和 *firefox 中运行测试。所有人都因为同样的原因而失败。

尝试使用 selenium.CaptureEntirePageScreenshot("c:\\temp\\screenshots\\seleniumSite.png", "background=#FFFFFF"); 转储屏幕截图,屏幕截图只是一个白条。

所以,我的问题是,我该如何调试并找出真正的问题是什么? 显然,页面将呈现并且测试将通过。只是当我在 Selenium-RC 中尝试这些测试时,它失败得很严重。 Selenium IDE 是否存在一些与将测试导出到 C# 相关的错误? (我注意到一个错误)。

I have a set of tests that I've developed using the Selenium IDE in Firefox. Tests run fine and all pass. Now I'm trying to port those over to C# and run the tests for IE using MSTest and selenium-server. Here's the sequence of events:

  1. Run all tests on Firefox via Selenium IDE. All tests pass.
  2. Export tests to MSTest (Nunit export, rename some stuff etc.)
  3. Start selenium-server-1.0.3
  4. Run the tests in VS2008. Selenium setup is: selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost/theSite/");; note that I can browse to http://localhost/theSite/ just fine.

    4a. Confirm test is launching Firefox. Got result:
    17:00:30.290 INFO - Preparing Firefox profile...
    17:00:33.842 INFO - Launching Firefox...

  5. First test ( waitForText "Login" in control "ctl00_TopNavBar_LoginStatus1") fails. Can't find the control.
    if ("Login" == selenium.GetText("id=ctl00_TopNavBar_LoginStatus1")) break;
    or
    if ("Login" == selenium.GetText("ctl00_TopNavBar_LoginStatus1")) break;

  6. All other tests fail as well -- same reason. Each test has a waitForText at the top.

Tried running the test in *chrome, *iexploreproxy and *firefox. All fail for the same reason.

Tried dumping a screenshot using selenium.CaptureEntirePageScreenshot("c:\\temp\\screenshots\\seleniumSite.png", "background=#FFFFFF"); and the screenshot is just a white bar.

So, my question is, how do I go about debugging this and figuring out what the real problem is? Clearly the page will render and the tests will pass. It's just when I try those tests in Selenium-RC that it fails so badly. Does the Selenium IDE have some bugs related to exporting tests to C#? (I have noticed one bug).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

欢你一世 2024-10-20 06:47:10

您是否正在执行selenium.Start()selenium.Open()?您看到浏览器中打开的页面了吗?

完整的初始化应该类似于:

selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost/");
selenium.Start();
selenium.Open("/theSite/");

重要提示!从一个空页面开始测试您的 IDE 测试。另外,在使用 IDE 时,如果命令只有一个参数,请将其放入 Target 字段,即使它不是控件名称。

Are you executing selenium.Start() and selenium.Open()? Do you see the page opened in the browser?

Full initialization should be something similar to:

selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost/");
selenium.Start();
selenium.Open("/theSite/");

Important Note! test your IDE tests by starting with an empty page. Also, when using the IDE, if a command only has one parameter put it in the Target field, even if it isn't a control name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文