9

send_keys() विधि का उपयोग करके लॉगिन के दौरान उपयोगकर्ता नाम इनपुट करने का प्रयास कर रहा है। मुझे लगता है कि यह इनपुट तत्व का पता लगाने में सक्षम है, क्योंकि जब मैं send_keys से पहले चलता हूं तो यह काम करता है। send_keys में एक स्ट्रिंग मान भेजने के साथ, यह एक त्रुटि फेंक रहा है।सेलेनियम + फ़ायरफ़ॉक्स देव-संस्करण: send_keys फेंकना [ऑब्जेक्ट अपरिभाषित] अपवाद

selenium.common.exceptions.WebDriverException: संदेश: अपेक्षित [वस्तु अपरिभाषित] एक स्ट्रिंग

मैं क्या याद आ रही है होना करने के लिए अपरिभाषित?

पायथन: 3.5
सेलेनियम 3.3.1
फ़ायरफ़ॉक्स डेवलपर संस्करण या रात (वर्तमान संस्करण> 52)
मेरे कोड का टुकड़ा:

login_url = "https://korunet.co.nz/" 
driver = webdriver.Firefox() 
driver.get(login_url) 
WebDriverWait(driver, 30).until(ec.visibility_of_element_located((By.CSS_SELECTOR, '#IDToken1'))) 

elem = driver.find_element_by_css_selector('#IDToken1') 
elem.click() 
elem.clear() 
elem.send_keys("10101") 

Traceback (सबसे हाल कॉल पिछले):

फ़ाइल "डी: /PycharmProjects/JCBbidEntry/tests/loop2.py", लाइन 29, elem.send_keys ("10101")
फ़ाइल "सी: \ उपयोगकर्ता \ BaruaR \ AppData \ रोमिंग \ पायथन \ Python35 \ साइट-पैकेज \ सेलेनियम \ webdriver \ remote \ webelement.py", लाइन 347, send_keys self._execute (Command.SEND_KEYS_TO_ELEMENT, {'मान ': keys_to_typing (value)})
फ़ाइल "सी: \ उपयोगकर्ता \ बारुआआर \ ऐपडाटा \ रोमिंग \ पायथन \ पायथन 35 \ साइट-पैकेज \ सेलेनियम \ वेबड्राइवर \ रिमोट \ webelement.py", लाइन 491, _execute में स्वयं को वापस करें ._parent.execute (कमांड, पैराम्स)
फ़ाइल "सी: \ उपयोगकर्ता \ बारुआआर \ ऐपडाटा \ रोमिंग \ पायथन \ पायथन 35 \ साइट-पैकेज \ सेलेनियम \ वेबड्राइवर \ रिमोट \ webdriver.py", लाइन 238, स्वयं निष्पादित करने में फ़ाइल .error_handler.check_response (प्रतिक्रिया)
फ़ाइल "सी: \ उपयोगकर्ता \ BaruaR \ AppData \ रोमिंग \ पायथन \ Python35 \ साइट-पैकेज \ सेलेनियम \ webdriver \ remote \ errorhandler.py", पंक्ति 1 9 3, चे में ck_response
उठाने exception_class (संदेश, स्क्रीन, स्टैकट्रेस)

+0

आप साझा कर सके URL या HTML कोड –

+0

तो मैं फ़ायरफ़ॉक्स डेवलपर संस्करण (जो मेरे Windows रास्ते में था) का उपयोग किया गया है। जब मैं स्थिर संस्करण का उपयोग करता हूं, और "बाइनरी = फ़ायरफ़ॉक्स बाइनरी (आर'सी: \ प्रोग्राम फ़ाइलें \ मोज़िला फ़ायरफ़ॉक्स \ firefox.exe ') के माध्यम से बाइनरी को स्पष्ट रूप से निर्दिष्ट करता हूं, तो यह ठीक काम करता है। – user1751844

+1

यह एफएफ 53 बीटा के साथ एक बग प्रतीत होता है। –

उत्तर

3

यहाँ एक ही ... Firefox के साथ एक समस्या लगती है ... यह रूप में CHROME ;-(

+1

यह केवल फ़ायरफ़ॉक्स के अस्थिर संस्करणों में है, रिलीज संस्करण और पुराने संस्करण ठीक काम करते हैं। मैं इस बग को फाइल करने के लिए कहां नहीं है। – najjarammar

+0

धन्यवाद @ नजजारमर - नियमित फ़ायरफ़ॉक्स का उपयोग करने के बाद सब कुछ ठीक काम करता है – wasabigeek

1

साथ उम्मीद से काम करता है मैं भी है मेरे मामले में एक ही समस्या मेरे geckodriver 64 बिट है, लेकिन फ़ायरफ़ॉक्स 32 बिट यह एक त्रुटि

+0

यह कोई जवाब नहीं है, आप इस प्रश्न के लिए टिप्पणी या वोट दे सकते हैं –

4

प्रकट होता है geckodriver 0.16 के नवीनतम संस्करण के साथ, हल किया जाना कम से कम मेरे लिए फेंकता है: https://github.com/mozilla/geckodriver/releases/tag/v0.16.0

ध्यान दें कि संस्करण 0.16 को सेलेनियम 3.4 की आवश्यकता है।

-इरिन

+0

मैंने इसे geckodriver के संस्करण 0.16 और सेलेनियम को अपग्रेड करने का भी हल किया। धन्यवाद! –

0

0.17.0 geckodriver को अपडेट कर रहा है के लिए मुझे
फ़ायरफ़ॉक्स 53.0.3
सेलेनियम 3.4.3
अजगर 3 समस्या का समाधान हो।6

binary = FirefoxBinary('C:\\Program Files (x86)\\Mozilla Firefox\\Firefox.exe') 
driver = webdriver.Firefox(firefox_binary=binary) 
driver.get(url) 

emailInput = driver.find_element_by_id("login-username") 
emailInput.send_keys("username") 
संबंधित मुद्दे