2012-04-23 15 views
5

में एम्पर्सेंड "&" टाइप करने में असमर्थ मैं सेलेनियम वेब-ड्राइवर के साथ टेक्स्ट-बॉक्स में एम्पर्सेंड "&" कुंजी टाइप करना चाहता हूं। लेकिन सेलेनियम -2 एम्पर्सेंड टाइप करते समय टाइप-बॉक्स से अपना ध्यान खो देता है। मेरा आदेश है, self.type ("&", अद्यतन => सत्य)सेलेनियम -2

मुझे पता है कि सेलेनियम में, कुंजी यूटीएफ_8 प्रारूप में भेजी जाती हैं और मैंने एम्परसैंड के बराबर भेजने की कोशिश की है लेकिन व्यवहार अभी भी वही है (जैसा सोचा था)। मुझे पता है कि एक्सएमएल या एचटीएमएल कुछ विशेष बचने वाले पात्रों के साथ एम्परसैंड का समर्थन करता है। मैं जानना चाहता हूं कि एम्पर्सेंड को कुछ एस्केप अनुक्रम जैसे (एचटीएमएल कोड) "&" या "&" send_keys या type_keys कमांड में बदलने का कोई तरीका है?

या क्या सेलेनियम -2 के साथ टेक्स्ट-बॉक्स में एम्पर्सेंड "&" टाइप करने का कोई अन्य तरीका है?

कृपया मुझे अपना सुझाव दें।

धन्यवाद, श्री

उत्तर

0

के रूप में कहा here, "&" एम्परसेंड के लिए HTML इकाई है। कोशिश करके देखो।

हालांकि, मैं बिना किसी समस्या के वेबड्राइवर और जावा के माध्यम से एक एम्परसेंड डाल सकता था। यह देखने के लिए कुछ अन्य इनपुट पर आज़माएं कि यह स्थानीय समस्या नहीं है ...

+0

मुझे @ user1352389 जैसा ही समस्या है, और मैंने यह भी सोचा कि '& 'मदद करेगा, लेकिन ऐसा नहीं हुआ। मैं कोशिश कर रहा हूं: '$ खोज बॉक्स-> send_keys (" स्नान & शरीर "); $ SearchBox-> send_keys (WebDriver :: ReturnKey()); ' – Ryan

2

मैंने कई दिनों में इस पर घंटों बिताए, और अंत में @ एसाफ ने मुझे बताया "अस्थायी रूप से अपने सभी जावास्क्रिप्ट को हटा दें और देखें कि क्या है एम्परसैंड को खाली करने का कारण बनता है। " वह सही था। अब $searchBox->send_keys("bath & body"); ठीक काम करता है।

अंततः मैंने इसे Jquery-ui Autocomplete के एक हिस्से तक सीमित कर दिया जो हस्तक्षेप कर रहा था। यह गुण: source:function(request, response) { //implementation removed } अन्य सभी जावास्क्रिप्ट जगह पर रह सकते हैं और ठीक काम कर सकते हैं। अब मैं यह जानना चाहता हूं कि क्यों Jquery-ui> स्वत: पूर्ण> स्रोत WebDriver से विवादित है और देखें कि कोई कामकाज है या नहीं।

0

मैं एक ही समस्या में भाग गया और सेलेनियम SendKeys विधि का उपयोग करने के बजाय जावास्क्रिप्ट निष्पादित करके इसे हल किया।

IJavaScriptExecutor jsExec = (IJavaScriptExecutor) webDriver;
jsExec.ExecuteScript ("document.getElementById ('your-input-id-here')। मूल्य =" + JsonConvert.SerializeObject (yourValueHere));

JsonConvert.SerializeObject() JSON.NET से है, जो जावास्क्रिप्ट में उपयोग किए जाने वाले स्ट्रिंग मान को एन्कोड करने का एक सुविधाजनक तरीका है। लेकिन आप अपने स्ट्रिंग मान को किसी भी तरह से एन्कोड कर सकते हैं जो जावास्क्रिप्ट में सही रूप से स्वरूपित है।

0

मेरी आवश्यकता एक टेक्स्ट फ़ील्ड में "आर & डी" टाइप करना था, कोड के नीचे प्रयास किया और यह काम किया।

textBox.sendKeys("R/&d") 
textBox.sendKeys(Keys.LEFT); 
textBox.sendKeys(Keys.LEFT); 
textBox.sendKeys(Keys.BACK_SPACE); 
0

अरे मैं यह पहली बार यह Adroid ड्राइवर

अगला मैं मैन्युअल रूप से फोन में Google कीबोर्ड पर बंद जो appium कुंजीपटल स्थापित किया गया था से Appium ड्राइवर बनाने बाद में मैं सिर्फ कुंजीपटल छिपा दिया और यह मेरे लिए काम किया हल किया।

वैसे भी वहां होने के लिए धन्यवाद।

संबंधित मुद्दे