2010-12-27 8 views
6

WatinのTypeTextメソッドのキーを押している間の遅延をどのように減らすか?テキストを「即座に」入力したい場合は、より良い方法がありますか?WatinのTypeText遅延をどのように減らすことができますか?

+0

を、「ブログ型」の記事は、推奨されていません。質問に答えることは、実際にこのサイトの目的ではありません。しかし、「自分の疑問に答える」というのは大丈夫です。 – jcolebrand

+3

@drachenstern:私は本当に自分の質問に答えて、他の人が同じ問題に遭遇した場合に投稿することにしました。 –

+0

質問が関連していないので、私はwatirタグを削除しました。 –

答えて

6

答えは.ClickNoWait()です。要素の.Valueプロパティを設定するだけです。

これは誰かを助けることを望みます。

+0

使用している例が見えますか?私は実行に問題があります。 – atwellpub

2
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(); 

私にとっては、テキストフィールドの値属性を設定するだけで、ページがどのようにコード化されているかによって異なる可能性があります。

7

私はもう少し遅いと知っていますが、同じ問題を抱えている人たちのためにこの情報を共有しています。

IE browser = new IE(); 

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

楽しんでください。 Hereは、私がこれをしばらく見つけた場所にある良い方法です。

0

また、私たちのASP.NET WebFormsアプリケーションにはchangeイベントが発生したときに実行されるバリデータがあるため、テキストフィールドをクリックして値を設定するだけでテストエラーが発生していました。ここで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.Click()またはtextfield.ClickNoWait()を追加し、textfieldをクリックしたときにトリガされますイベントハンドラを持っている場合。

WatiN拡張を含めるコードの先頭にusing Project.Extensions;行があることを覚えておいてください。

今、あなたが拡張メソッドを呼び出すことができます:だけ明確にすること

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

field.TypeTextFaster("the text to type"); 
関連する問題