Selenium测试无法登录 - 可以手动完成

时间:2014-09-15 08:33:35

标签: .net unit-testing selenium nunit

我有一个Selenium功能文件基本上是这样的:

Given I'm logged in as administrator
When I navigate to the create item page
And I fill out the form as follows
| Label           | Value              |
    // form data here
And I press save on the create item page
Then I am at the edit item page
And The form is filled out as follows
   // same form data here

要运行此测试,我首先通过点击“run without debugging”启动Visual Studio中的IIS Express实例,当它启动并运行时,我在Unit Test Explorer中点击“run unit test”。

问题是,当我从NUnit运行此测试时,由于某种原因登录步骤不起作用 - 我没有到达我的网站的起始页面,而是返回登录页面{{1查询字符串参数我想去的地方。如果我手动执行完全相同的操作(例如,输入相同的用户名和密码进行登录),则登录成功。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果我错了,请纠正我,但在:

Given I'm logged in as administrator

是登录过程的完整逻辑(我也为DRY做了)。因此,解决方案的关键非常简单 - 只需调试(跟踪调用树)负责此绑定的methods。有时候缓存可能是根。我总是在@TestInitialize

清除它

答案 1 :(得分:0)

"当我导航到创建项目页面"步骤已执行。

如果您在主页上,可能应该检查一下。您可以使用wait命令执行此操作,例如:

(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver d) {
                return d.getTitle().toLowerCase().startsWith("main page");
            }

希望有所帮助!