Python Selenium找到输入元素但不能发送send_keys

时间:2017-08-06 18:19:16

标签: python selenium

我正在尝试使用Selenium Web驱动程序和Windows中的Python将字符串写入<input>元素。

找到并选择的元素,但尝试send_keys("mystring")时webdriver失败。

campotx = driver.find_element_by_css_selector("input.urEdf2TxtRadius.urEdf2TxtEnbl.urEdfVAlign")
campotx.click()
campotx.clear() 
##########----it works ok until here
campotx.send_keys("SM37")
campotx.send_keys(Keys.ENTER)

该问题与“find element”方法无关:我尝试了by_ID,by_class_name和by_xpath。所有这些都能够找到元素。我无法send_keys

我正在使用无头网络驱动程序HTMLUNITS。这个问题的输出错误很少见,我试着谷歌但却找不到任何东西:

selenium.common.exceptions.WebDriverException: Message: TypeError: Cannot call method "setOpenerRef" of null (http://myurl.com)

以下是<input>源代码:

<input id="ToolbarOkCode" ct="I" lsdata="{0:'ToolbarOkCode',1:'Command',4:200,13:'150px',23:true}" lsevents="{Change:[{ClientAction:'none'},{type:'TOOLBARINPUTFIELD'}],Enter:[{ClientAction:'submit',PrepareScript:'return\x20its.XControlSubmit\x28\x29\x3b',ResponseData:'delta',TransportMethod:'partial'},{Submit:'X',type:'TOOLBARINPUTFIELD'}]}" type="text" maxlength="200" tabindex="0" ti="0" title="Command" class="urEdf2TxtRadius urEdf2TxtEnbl urEdfVAlign" value="" autocomplete="on" autocorrect="off" name="ToolbarOkCode" style="width:150px;"/>

编辑:

  • 尝试使用PhantomJS,但我无法登录。
  • 尝试使用headless_ie_selenium.exe,但我甚至无法启动驱动程序。
  • 尝试使用无头chrome,与headless_ie_selenium相同。所有教程都与Linux环境有关。

1 个答案:

答案 0 :(得分:0)

我终于通过使用javascript代替Selenium send_keys解决了这个问题。

driver.execute_script("document.getElementById('ToolbarOkCode').setAttribute('value', 'SM37')")