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

时间:2011-01-21 01:14:25

标签: selenium selenium-rc

我在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 INFO - 准备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

  7. 尝试在* chrome,* iexploreproxy和* firefox中运行测试。所有失败都是出于同样的原因。

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

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

1 个答案:

答案 0 :(得分:1)

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

完全初始化应类似于:

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

重要提示!从空白页开始测试您的IDE测试。此外,在使用IDE时,如果命令只有一个参数将其放在“目标”字段中,即使它不是控件名称。