我有这个Selify脚本,它可以输入邮箱地址,点击Use Password按钮,但输入密码失败:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

web = webdriver.Chrome()
web.implicitly_wait(5)
web.get('https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=16&ct=1700481689&rver=7.0.6738.0&wp=MBI_SSL&wreply=https%3a%2f%2foutlook.live.com%2fowa%2f%3fcobrandid%3dab0455a0-8d03-46b9-b18b-df2f57b9e44c%26nlp%3d1%26deeplink%3dowa%252f%26RpsCsrfState%3de98b3d70-89d0-6e78-6a87-b7d5b1245a4e&id=292841&aadredir=1&CBCXT=out&lw=1&fl=dob%2cflname%2cwld&cobrandid=ab0455a0-8d03-46b9-b18b-df2f57b9e44c')

EmailSignIn = web.find_element(By.XPATH,"//*[@id='i0116']")
EmailSignIn.send_keys("generic@live.com")

web.implicitly_wait(5)

EMailSignInContinueButton = web.find_element(By.XPATH, "//*[@id='idSIButton9']")
EMailSignInContinueButton.click()

web.implicitly_wait(5)

UsePasswordButton = web.find_element(By.XPATH, "//*[@id='idA_PWD_SwitchToPassword']")
UsePasswordButton.click()

web.implicitly_wait(5)

SelectEMailPasswordBox = web.find_element(By.XPATH,"//*[@id='i0118']")
SelectEMailPasswordBox.send_keys("FakePassword")

time.sleep(5)

我对脚本的其余部分没有任何问题,所以我在想,密码框肯定有什么新奇的地方,我不知道?其他在线信息似乎已经过时.感谢您的帮助,谢谢!

try 如上所述运行脚本,输入密码失败.希望在Outlook中填充密码.

推荐答案

Root cause of the issue:不需要下面这条线.我在属性为ID=idA_PWD_SwitchToPassword的HTML中看不到任何内容.(102)

UsePasswordButton = web.find_element(By.XPATH, "//*[@id='idA_PWD_SwitchToPassword']")
UsePasswordButton.click()

Check the below working refactored code:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

web = webdriver.Chrome()
web.maximize_window()
web.get('https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=16&ct=1700481689&rver=7.0.6738.0&wp=MBI_SSL&wreply=https%3a%2f%2foutlook.live.com%2fowa%2f%3fcobrandid%3dab0455a0-8d03-46b9-b18b-df2f57b9e44c%26nlp%3d1%26deeplink%3dowa%252f%26RpsCsrfState%3de98b3d70-89d0-6e78-6a87-b7d5b1245a4e&id=292841&aadredir=1&CBCXT=out&lw=1&fl=dob%2cflname%2cwld&cobrandid=ab0455a0-8d03-46b9-b18b-df2f57b9e44c')
wait = WebDriverWait(web,15)

EmailSignIn = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@id='i0116']")))
EmailSignIn.send_keys("generic@live.com")

EMailSignInContinueButton = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@id='idSIButton9']")))
EMailSignInContinueButton.click()

SelectEMailPasswordBox = wait.until(EC.element_to_be_clickable((By.XPATH,"//*[@id='i0118']")))
SelectEMailPasswordBox.send_keys("FakePassword")

time.sleep(20)

Result:

enter image description here

Python-3.x相关问答推荐

错误2没有这样的文件或目录website_content.txt""

如何验证具有内部json字符串的json字符串?

如何在输入正确的用户名和密码时添加按钮?

将数据帧扩展为矩阵索引

Pandas 根据条件增加Dataframe列

查找值始终为零的行 pandas

如何在当前测试中使用fixture 转换后的数据进行参数化?

如何定义部署用 Python 编写的 Firestore 第二代函数的区域/位置?

从一列字符串中提取子字符串并将它们放入列表中

从 https://www.niftytrader.in/stock-options-chart/sbin 提取 SBIN 股票最大痛苦值的 Python 代码不起作用 - 我错过了什么?

将值从函数传递到标签

提取图像中的背景并保存

缺失时推断的数据类可选字段

使用 OpenCV 从图像中减go 一条线

使用 RANSAC 在激光雷达点云中查找电力线

使用 Python 3 按行进行分析

如何在 Selenium 和 Python 中使用类型查找元素

从 IPython 重新加载 Python 扩展模块

为什么异步库比这个 I/O 绑定操作的线程慢?

如何将发音相似的词放在一起