Selenium 2(Webdriver)未正确提交我的Asp.Net表单数据

时间:2011-11-03 21:53:12

标签: webforms selenium-webdriver

所以我编写了一个填充表单,保存(在管理工具中)然后发布的测试。

但是,我的表单在保存点击和发布点击之间丢失了。我会在HTML中显示表单的样子,但它非常庞大(如20-30个字段)

在psuedo代码中,填写表单如下所示:

1)使用下拉列表填写表格 2)点击保存按钮 - 保存所有表格数据 3)点击发布按钮

当我暂停脚本以查看selenium中发生的情况时,我看到正确填充了表单。然后我看到正确点击了“保存”按钮。当我在点击发布之前暂停屏幕时,我看到单击保存按钮后保存的内容丢失或位于错误的字段中。

当我手动执行此操作时,它可以正常工作。我知道selenium提交表单的方式与标准用户不同,但是,我可以做些什么来确保表单正确提交?

1 个答案:

答案 0 :(得分:0)

Save按钮实际上做了什么?是Javascript,还是简单的`按钮?

您是否正在使用Selenium webdriver的C#界面?你可能有类似这样的代码:

FillInForm();
selenium.click(By.CssSelector("input[value='Save']"));
selenium.click(By.CssSelector("input[value='Publish']"));

您是否尝试在savepublish之间插入如下行:

// 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来强制表单提交 - 但是你明确地测试用户实际做了什么(但你可能会发现它更接近你的体验)。