有时无法按硒python中的sendkeys的预期发送全文到输入

时间:2019-06-09 04:55:14

标签: python selenium webdriverwait

我尝试通过硒自动登录网站。 我的脚本有时运行平稳,但有时不会将用户名或密码的全文发送到相关的输入,因此登录失败。 我尝试隐式插入_wait,但似乎无法完全解决此问题。 我想知道是否有任何功能要求网络驱动程序在执行硒中的另一个输入之前先完成每个输入。 这可以尝试:

browserdriver.get(url)

#fill username
browserdriver.implicitly_wait(25)
psusername=browserdriver.find_element_by_xpath("//*[@class='form-group'][1]/input[@name='username']")
psusername.click()
psusername.send_keys("1234567890")

#fill password
browserdriver.implicitly_wait(25)
pspass=browserdriver.find_element_by_xpath("//*[@class='form-group'][2]/input[@name='password']")
pspass.click()
pspass.send_keys("abcdefgfk12345")

browserdriver.implicitly_wait(25)
pssubmit=browserdriver.find_element_by_xpath("//*[@class='login-btn']/button[@type='submit']")
pssubmit.click()

请为我解释为什么我会卡在这个问题上以及如何解决!非常感谢

编辑1:我添加了目标站点地址:click here您应该单击右上角屏幕上的登录词(Đăngnhập),以查看弹出的登录面板。

编辑2:感谢以下注释的指导,我尝试添加一些代码行以强制将其键入单个字母,并且它似乎运行良好,因此我在此处添加解决方案:

text_input="1234567890"
for i in text_input:
    psusername.send_keys(i)

1 个答案:

答案 0 :(得分:1)

使用set属性代替sendkeys 这是示例代码:

webdriver.executeScript("document.getElementById('elementID').setAttribute('value', '1234567890')");