我正在编写一个自动测试来测试注册页面。此页面上的每个文本框都在模糊事件上进行验证。注册按钮仅在所有文本框的验证通过后才会启用。
我已为每个文本框执行以下操作
selenium.Type(textbox_id,content); //在每轮测试中以编程方式生成内容 selenium.FireEvent(textbox_id,“blur”);
所有注册信息都会被填满,但不会触发模糊事件。 SignUp按钮保持禁用状态。 另外,我在java中编写了一个完全相同的测试,它没有遇到任何问题。
我很乐意用java编写它,但我只能使用我可以用于此任务的语言; C#。有人能告诉我可能导致这个问题的原因。
答案 0 :(得分:0)
我遇到了同样的问题,通过进入DOM并使用javascript触发模糊事件找到了解决方案。我在IWebElement上将该方法编写为扩展方法。请参阅以下代码:
public static void Blur(this IWebElement element)
{
var jsExecutor = (IJavaScriptExecutor)Context.Driver;
try
{
jsExecutor.ExecuteScript(
@"var fireOnThis = arguments[0];
fireOnThis.scrollIntoView(false);
var evt = 'blur';
if( document.createEvent ) {
var evObj = document.createEvent('MouseEvents');
evObj.initEvent(evt, true, false);
fireOnThis.dispatchEvent(evObj);
} else if (document.createEventObject) {
fireOnThis.fireEvent('on'+evt);
}", element);
}
catch
{}
}