我有一个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查询字符串参数我想去的地方。如果我手动执行完全相同的操作(例如,输入相同的用户名和密码进行登录),则登录成功。
我该如何解决这个问题?
答案 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");
}
希望有所帮助!