使用硒在具有虚拟键盘的网站上输入密码

时间:2019-10-09 17:27:52

标签: python python-3.x selenium

我正在使用硒登录网站。但是当它到达密码页面时,该站点要求通过虚拟键盘输入,并且send_keys命令不起作用。

代码:

import time
from selenium import webdriver as wd
from selenium.webdriver.common.keys import Keys

# Página 1
chrome = wd.Chrome(executable_path='R:\\USUARIOS\\YVieira\\chromedriver.exe')
chrome.get('https://extranet.btgpactual.com')
user=chrome.find_element_by_id('txtLogin')
user.send_keys('yan.vieira')
user.send_keys(Keys.ENTER)
time.sleep(3)
#Página 2

senha=chrome.find_element_by_id('txtSenha')
senha.send_keys("pssw")

HTML代码:

<input type="password" id="txtSenha" name="txtSenha" maxlength="100">

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以尝试使用JavaScript设置值:

password = "pssw"
senha=chrome.find_element_by_id('txtSenha')
chrome.execute_script(f"arguments[0].value='{password}'", senha)
chrome.find_element_by_id("btnValidate").click()

答案 1 :(得分:0)

您可以定义一个函数,该函数将遍历您的密码的每个字母,例如(由于虚拟键盘-根据您的屏幕截图-是一种div元素,每个div元素都具有key属性,其值对应于键盘元素的键值)

passwd = "my pass"
for key in passwd:
  chrome.find_element_by_xpath('//div[@key="' + key + '"]').click()

只需点击页面上相应的div。

P.S。 -假定此简单示例可使用不需要shift键值的简单密码