What exactly does ime() in selenium do? -


 <कोड> driverInstanceName.manage ()। IME ()। GetActiveEngine () driverInstanceName.manage ()। IME ()। activateEngine (इंजन)  

नीचे की तरह अपवाद हो रही,

  org.openqa.selenium.WebDriverException: लागू नहीं किया गया आदेश: सत्र / 3f83e50445b7c179249aada785c8e910 / IME / सक्रिय करें कमान अवधि या समय समाप्त:। 2 मिलीसेकंड  

समझ गए कि यह डाला जाने वाला डेटा से संबंधित है लेकिन नहीं जानते कि यह कैसे सेलेनियम में प्रासंगिक है, कई मंचों में लेकिन कोई लाभ नहीं हुआ उत्तर ढूंढना की कोशिश की

इस सवाल को पढ़ने के बाद ime () पद्धति के बारे में और जानने के लिए रुचि रखते हैं और गूगल इस के आसपास की खोज:

IME - इनपुट मेथड इंजन के लिए खड़ा है वर्तमान में ऐसा लगता है कि यह केवल लिनक्स मंच और फ़ायरफ़ॉक्स ब्राउज़र में समर्थित है।

जब चीनी / जापानी या बहु-बाइट वर्णों के साथ काम करते हैं जो लिनक्स में सेलेनियम द्वारा इनपुट की आवश्यकता होती है, तो आपको इनपुट फ़्रेमवर्क का उपयोग करना होगा (जापानी), (चीनी)। जैसे ibus पर लागू इंजन

निम्न उदाहरण कोड सेलेनियम के से लिया जाता है, जो anthy एक Linux मशीन पर इनपुट जापानी वर्णों के लिए इंजन के लिए लग रहा है।

 <कोड> @NeedsFreshDriver @Ignore (मूल्य = {आईई, Chrome, Firefox}, कारण = "इस समय फ़ायरफ़ॉक्स / लिनक्स के अलावा और कुछ पर कार्यान्वित नहीं । ") @NotYetImplemented (HTMLUNIT) @Test सार्वजनिक शून्य testShouldBeAbleToActivateIMEEngine () फेंकता InterruptedException {assumeTrue (" IME लिनक्स केवल ", TestUtilities.getEffectivePlatform (पर समर्थित है।) है (Platform.LINUX))। driver.get (pages.formPage); वेब एलेमेंट इनपुट = ड्राइवर.फ़ीन्ड एलेमेंट (बाय.आईडी ("कार्य")); // आईएमई सक्रिय करें डिफ़ॉल्ट रूप से, यह कुंजीकोड जापानी के लिए आईबीस इनपुट सक्रिय करता है WebDriver.ImeHandler IME = driver.manage ()। Ime (); सूची के & lt; स्ट्रिंग & gt; इंजन = ime.getAvailableEngines (); स्ट्रिंग वांछितईगिन = "एंथ"; अगर (! इंजन.contains (वांछित ईगिन)) {System.out.println ("वांछित इंजन" + वांछित ईंजिन + "उपलब्ध नहीं है, परीक्षा छोड़ना।"); वापसी; } Ime.activateEngine (वांछितईगिन); पूर्णांक वैट = 0; जबकि (! Ime.isActivated () & amp; amp; amp; (कुल विट्स & lt; 10)) {Thread.sleep (500); totalWaits ++; } AssertTrue ("IME इंजन सक्रिय किया जाना चाहिए।", Ime.isActivated ()); जोर देने वाले प्रश्न (वांछित ईगिन, ime.getActiveEngine ()); // "टोक्यो" के लिए रोमाजी को भेजें शब्द को बदलने के लिए अंत में स्थान IME को निर्देशित करता है। Input.sendKeys ("touquou"); input.sendKeys (Keys.ENTER); स्ट्रिंग तत्व Value = input.getAttribute ("मान"); ime.deactivate (); जोर दें ("आईएमई इंजन बंद होना चाहिए।", Ime.isActivated ()); // आईएमई मौजूद नहीं है उस वजह से असफल मत हो लेकिन इसके पास रोमाजी मूल्य होना चाहिए / बजाय AssertTrue ("elemnt का मूल्य भी रोमाजी में रहना चाहिए या ठीक से परिवर्तित होना चाहिए।" + "यह था:" + elementValue, elementValue.equals (टोक्यो));  

सावधानी: मेरा जवाब ime () के बारे में एक उचित विचार दे सकता है, फिर भी अधिक अंतर्दृष्टि सेलेनियम कमटर , जैसा कि मैंने देखा है कि यह सुविधा व्यापक उपयोग में नहीं है और सीमित समर्थन भी है (केवल लिनक्स में)।


Comments