9

尝试在登录时使用send_keys()方法输入用户名。我想它能够找到输入元素,因为当我运行,直到send_keys它的工作。通过在send_keys中发送字符串值,它会引发错误。Selenium + Firefox Dev-Edition:send_keys抛出[object Undefined]异常

selenium.common.exceptions.WebDriverException:消息:预期[对象未定义]未定义是一个字符串

我缺少什么?

的Python:3.5
硒3.3.1
Firefox的开发版或夜间(目前版本> 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") 

回溯(最近通话最后一个):

文件“D:/PycharmProjects/JCBbidEntry/tests/loop2.py”,第29行,在 elem.send_keys(“10101”)
send_keys中的第347行文件“C:\ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site-packages \ selenium \ webdriver \ remote \ webelement.py”self._execute(Command.SEND_KEYS_TO_ELEMENT,{'value ':keys_to_typing(value)})
文件“C:\ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site-packages \ selenium \ webdriver \ remote \ webelement.py”,第491行,在_execute中 return self ._parent.execute(命令,参数)
文件“C:\ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”,第238行,执行 self .error_handler.check_response(响应)
文件“C:\ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py”,行193 ck_response
提高exception_class(消息,屏幕,堆栈跟踪)

+0

你能分享的URL或HTML代码 –

+0

所以我一直在使用Firefox开发者版(这是我的Windows路径)。当我使用稳定版本,并通过“binary = FirefoxBinary(r'C:\ Program Files \ Mozilla Firefox \ firefox.exe)”显式指定二进制文件时,它可以正常工作。 – user1751844

+1

这似乎是FF 53测试版的错误。 –

回答

3

同样在这里... 似乎是与Firefox的问题......它按预期工作与CHROME ;-(

+1

它只在Firefox的不稳定版本,发布版本和旧版本工作正常。我不知道在哪里提交这个错误。 – najjarammar

+0

谢谢@najjarammar - 使用普通的firefox后,一切都很好 – wasabigeek

1

我也有在我的情况下,同样的问题我geckodriver是64位,但Firefox是32位的,它抛出一个错误

+0

这不是一个答案,你可以发表评论或对这个问题投票 –

0

更新到geckodriver 0.17.0或更新固定为我
火狐53.0.3
硒3.4.3
Python 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")