Selenium + Firefox Dev-Edition:send_keys抛出[object Undefined]异常

时间:2017-04-03 00:37:08

标签: python-3.x selenium-webdriver selenium-firefoxdriver geckodriver

尝试使用send_keys()方法在登录期间输入用户名。我猜它能够找到输入元素,就像我跑到send_keys之前一样。通过在send_keys中发送字符串值,它会抛出错误。

  

selenium.common.exceptions.WebDriverException:消息:预期[object Undefined] undefined为字符串

我错过了什么?

Python:3.5
硒3.3.1
Firefox Developer Edition或Nightly(当前版本> 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&#34)
      文件" C:\ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site-packages \ selenium \ webdriver \ remote \ webelement.py",第347行,在send_keys中       self._execute(Command.SEND_KEYS_TO_ELEMENT,{' value&#39 ;: keys_to_typing(value)})
      文件" C:\ Users \ BaruaR \ AppData \ Roaming \ Python \ Python35 \ site-packages \ selenium \ webdriver \ remote \ webelement.py",第491行,在_execute中       return self._parent.execute(command,params)
      文件" 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行,在check_response中       提出exception_class(消息,屏幕,堆栈跟踪)

6 个答案:

答案 0 :(得分:4)

似乎已经解决了,至少对我来说有最新版本的geckodriver 0.16:https://github.com/mozilla/geckodriver/releases/tag/v0.16.0

请注意,版本0.16需要selenium 3.4。

-Erinn

答案 1 :(得分:3)

同样在这里...... 似乎是FIREFOX的一个问题......它与CHROME一样正常工作; - (

答案 2 :(得分:1)

我也有同样的问题我的geckodriver是64位但火狐是32位它会抛出错误

答案 3 :(得分:0)

有Firefox更新,同样的事情发生在我身上。重新安装Geckodriver 64位(https://github.com/mozilla/geckodriver/releases),它对我有用。

答案 4 :(得分:0)

更新到geckodriver 0.17.0为我解决了问题 Firefox 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")

答案 5 :(得分:0)

对我有用的解决方案是设置值属性,而不是使用send_keys。

driver.execute_script("document.getElementById('login-username').setAttribute('value', 'username')")