Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何减少Watin中的TypeText延迟?_C#_Watin - Fatal编程技术网

C# 如何减少Watin中的TypeText延迟?

C# 如何减少Watin中的TypeText延迟?,c#,watin,C#,Watin,在Watin的TypeText方法中,如何减少按键之间的延迟?如果我想“即时”键入一些文本,有没有更好的方法?答案是。在元素上单击nowait(),然后只设置其.Value属性 希望这对某人有所帮助。LoginPage LoginPage=Browser.Page(); LoginPage LoginPage = Browser.Page<LoginPage>(); string UserName = ConstVars.UserName; string P

在Watin的
TypeText
方法中,如何减少按键之间的延迟?如果我想“即时”键入一些文本,有没有更好的方法?

答案是
。在元素上单击nowait()
,然后只设置其
.Value
属性

希望这对某人有所帮助。

LoginPage LoginPage=Browser.Page();
    LoginPage LoginPage = Browser.Page<LoginPage>();

    string UserName = ConstVars.UserName;
    string Password = ConstVars.Password;

    if (LoginPage.UserNameTextField.GetAttributeValue("value") != UserName)
    {
        LoginPage.UserNameTextField.SetAttributeValue("value", UserName);
    }
    if (LoginPage.PasswordTextField.GetAttributeValue("value") == null)
    {
        LoginPage.PasswordTextField.SetAttributeValue("value", Password);
    }
    LoginPage.ClickLoginButton();
字符串UserName=ConstVars.UserName; 字符串密码=ConstVars.Password; if(LoginPage.UserNameTextField.GetAttributeValue(“值”)!=用户名) { LoginPage.UserNameTextField.SetAttributeValue(“值”,用户名); } if(LoginPage.PasswordTextField.GetAttributeValue(“值”)==null) { LoginPage.PasswordTextField.SetAttributeValue(“值”,密码); } LoginPage.ClickLoginButton();

对我来说,只需为文本字段设置value属性就行了,但这可能取决于页面的编码方式。

我知道有点晚了,但我还是将此信息分享给其他有同样问题的人,特别是考虑到你要求的示例,他们在这里登陆

IE browser = new IE();

browser.TextField("UserName").Value = "admin";
browser.TextField("Password").Value = "pass123";

玩得开心。这是一篇关于另一种方法的不错的文章,这也是我不久前发现的。

我也遇到了这个问题,只需单击文本字段并设置值就会导致测试失败,因为我们的ASP.NET WebForms应用程序具有在触发
更改
事件时执行的验证器。以下是WatiN扩展的源代码:

using WatiN.Core;

namespace Project.Extensions
{
    public static class WatinExtensions
    {
        public static void TypeTextFaster(this TextField textfield, string value)
        {
            textfield.Value = value;
            textfield.Change();
        }
    }
}
如果您有在用户单击
textfield
时触发的事件处理程序,只需添加
textfield。在设置值之前单击()
textfield。单击nowait()

记住
使用Project.Extensions在代码开头的行中包含WatiN扩展

现在可以调用扩展方法:

TextField field = browser.TextField("id");

field.TypeTextFaster("the text to type");

只是要明确一点,“博客类型”的帖子是不推荐的。问然后回答问题并不是这个网站的真正目的。但是,“回答了我自己的问题”就可以了。@drachenstern:我确实回答了我自己的问题,并决定发布它,以防其他人遇到同样的问题。我已经删除了watir标签,因为这个问题与此无关。@drachenstern:根据:“提问和回答你自己的问题也很好,只要你假装处于危险之中:用问题的形式表达出来。”在这种情况下,这是正确的。我能看一个例子吗?我执行起来有困难。