所以我编写了一个填充表单,保存(在管理工具中)然后发布的测试。
但是,我的表单在保存点击和发布点击之间丢失了。我会在HTML中显示表单的样子,但它非常庞大(如20-30个字段)
在psuedo代码中,填写表单如下所示:
1)使用下拉列表填写表格 2)点击保存按钮 - 保存所有表格数据 3)点击发布按钮
当我暂停脚本以查看selenium中发生的情况时,我看到正确填充了表单。然后我看到正确点击了“保存”按钮。当我在点击发布之前暂停屏幕时,我看到单击保存按钮后保存的内容丢失或位于错误的字段中。
当我手动执行此操作时,它可以正常工作。我知道selenium提交表单的方式与标准用户不同,但是,我可以做些什么来确保表单正确提交?
答案 0 :(得分:0)
Save
按钮实际上做了什么?是Javascript,还是简单的`按钮?
您是否正在使用Selenium webdriver的C#界面?你可能有类似这样的代码:
FillInForm();
selenium.click(By.CssSelector("input[value='Save']"));
selenium.click(By.CssSelector("input[value='Publish']"));
您是否尝试在save
和publish
之间插入如下行:
// further up: By saveButton = ...
// By formField = ...
selenium.click(saveButton);
var formField = selenium.FindElement(formField);
Assert.That(formField.GetAttribute("value")
.contains("The text you typed into the form")
);
这里的重点是要检查save
是否真的按照锡上的说法进行操作。通常,当您要求WebDriver“点击”某个按钮时,它确实(或多或少)完成了用户所做的事情。或者,你可以注入一些javascript来强制表单提交 - 但是你明确地不测试用户实际做了什么(但你可能会发现它更接近你的体验)。