python - 如何使 Selenium 中的发送密钥起作用?
问题描述
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
PATH = 'C:\Program Files (x86)\chromedriver.exe'
driver = webdriver.Chrome(PATH)
driver.get('https://outlook.office.com/mail/')
driver.implicitly_wait(7)
login = driver.find_element_by_name("loginfmt")
login.send_keys("emailhere")
login.send_keys(Keys.RETURN)
driver.implicitly_wait(5)
password = driver.find_element_by_name("passwd")
password.send_keys("passwordhere")
password.send_keys(Keys.RETURN)
它完美地输入了电子邮件并将我带到了密码输入屏幕,但此时它并没有发送密码密钥。关于我的代码有什么问题的任何想法?
解决方案
这里需要显式等待。参考等待,所以代码会像
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
password = WebDriverWait(driver, 20).until(
EC.element_to_be_clickable((By.NAME, "passwd"))
)
password.send_keys("passwordhere")
附加参考:文档
推荐阅读
- php - 使用 if 条件检查 Laravel 数据库中的值时出现语法错误
- java - 使用 Servlet 和 JSP 从 PostgreSQL 数据库中检索和显示图像
- reactjs - Redux 表单组件“onSubmitSuccess”单元测试
- algorithm - 得到 x。“线性同余生成器”的值
- javascript - 使用表示大于 Number.MAX_SAFE_INTEGER 的值的字符串调用 parseInt
- python - 如何防止选择第一行作为索引列
- c# - 在 C# 中使用 Enumerable 初始化具有相同值的数组数组
- apache-kafka - Kafka Streams - 我可以对具有相同应用程序 ID 的多个流实例使用相同的状态目录吗
- python - ValueError:检查输入时出错:预期 conv1d_3_input 有 3 个维度,但得到的数组形状为 (1500, 1)
- amazon-ec2 - Apache服务器无法在公共IP地址上工作