2010-12-27 7 views
6

कैसे एक Watin की TypeText विधि में keypresses के बीच देरी को कम करता है? क्या कोई बेहतर तरीका है यदि मैं "तत्काल" कुछ पाठ टाइप करना चाहता हूं?वाटिन में टाइपटेक्स्ट देरी कैसे कम हो सकती है?

+0

बस स्पष्ट होना, "ब्लॉग-प्रकार" पदों की सिफारिश नहीं कर रहे हैं। पूछे जाने वाले प्रश्न वास्तव में इस साइट का उद्देश्य नहीं है। हालांकि, "मेरे अपने प्रश्न का उत्तर दिया" बस ठीक है। – jcolebrand

+3

@ ड्रेचेनस्टर्न: मैंने वास्तव में अपने स्वयं के प्रश्न का उत्तर दिया था, और अगर किसी और ने एक ही मुद्दे में भाग लिया तो इसे पोस्ट करने का फैसला किया। –

+0

मैंने वॉटर टैग हटा दिया है क्योंकि सवाल इससे संबंधित नहीं है। –

उत्तर

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

मैं इस समस्या में भी भाग गया, और बस टेक्स्ट फ़ील्ड पर क्लिक करके और मूल्य सेटिंग परीक्षण विफलताओं का कारण बन रहा था क्योंकि हमारे एएसपी.नेट वेबफॉर्म एप्लिकेशन में वैधताएं होती हैं जो 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 पर क्लिक करता है, बस मूल्य निर्धारित करने से पहले textfield.Click() या textfield.ClickNoWait() जोड़ने शुरू हो रहा हो है।

अपने कोड की शुरुआत में using Project.Extensions; लाइन याद रखें Watin एक्सटेंशन शामिल करना है।

अब आप विस्तार विधि कॉल कर सकते हैं:

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

field.TypeTextFaster("the text to type"); 
संबंधित मुद्दे