由于某种原因,我无法将字符'3'写入页面的输入元素。
此代码:
chrome_options = Options()
chrome_options.add_argument('--dns-prefetch-disable')
chrome_options.add_argument('--no-proxy-server')
chromeDriverPath = self.getChromeDriverPath()
os.environ["webdriver.chrome.driver"] = chromeDriverPath
self.driver = webdriver.Chrome(chromeDriverPath, chrome_options=chrome_options)
self.driver.get(self.loginUrl)
login = self.driver.find_element_by_id('login_credit')
login.send_keys("12345")
导致在登录输入中写入“1245”... 有人可以帮忙吗? 我使用python 2.7,最新的chrome和最新的chromedriver
编辑:
login.send_keys("3")
login.send_keys("\3")
也不起作用。
login.send_keys("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()")
- 字符串中只缺少“3”...
什么有效?
login.send_keys(Keys.NUMPAD3)
正如Andersson在下面所建议的那样,但这不是一个解决方案。
我在谷歌搜索框中尝试过,我遇到了同样的行为。
答案 0 :(得分:6)
更新到最新chrome driver已解决此问题。
答案 1 :(得分:1)
您可以使用下面提到的任何替代方案,而不是使用 send_keys("12345")
:
使用 Keys.NUMPAD3
:
login.send_keys(Keys.NUMPAD3)
将JavascriptExecutor
与 getElementById
一起使用:
self.driver.execute_script("document.getElementById('login_credit').value='12345'")
将JavascriptExecutor
与 getElementsById
一起使用:
self.driver.execute_script("document.getElementsById('login_credit')[0].value='12345'")
答案 2 :(得分:0)
奇怪的问题,尝试在send_keys
中传递字符串变量,尝试可能适用于您
my_str = "12345"
login = self.driver.find_element_by_id('login_credit')
login.send_keys(my_str)