Selenium RC fireEvent()在c#中不起作用
本文关键字:不起作用 RC fireEvent Selenium | 更新日期: 2023-09-27 18:11:41
我正在编写一个自动化测试来测试注册页面。此页面上的每个文本框都在模糊事件时进行验证。只有当所有文本框的验证通过时,才会启用"注册"按钮。
我已经为每个文本框执行了以下
硒。类型(textbox_id、内容);//在每一轮测试中以编程方式生成内容硒。FireEvent (textbox_id,"模糊");
所有的注册信息被填满,但它的模糊事件触发。注册按钮仍然禁用。另外,我用java写了一个完全相同的测试,没有出现任何问题。
我很想用java完成它,但是我被限制在我可以用于这项任务的语言;c#。谁能告诉我是什么原因导致这个问题的?
我遇到了同样的问题,并通过进入DOM并使用javascript触发blur事件找到了解决方案。我将该方法作为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
{}
}