这是一个网站,有一个PIN码列表,只有一个是正确的。要检查PIN码,有一个检查按钮。我需要按下检查按钮,然后粘贴引脚提醒和接受,然后根据我需要做其他事情的消息。
问题是当我尝试使用send_keys()
方法时,程序崩溃并出现以下错误:
selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: {Alert text :
Message: unexpected alert open: {Alert text : }
我试过添加time.sleep()
,execute_script
与js
代码来传递一个pin,但仍然有崩溃。
如果我删除send_keys()
方法程序工作正常,但因为我把它添加回来,它不是。
下面是我的代码:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
with webdriver.Chrome() as browser:
browser.get('https://parsinger.ru/blank/modal/4/index.html')
codes = browser.find_elements(By.CLASS_NAME, 'pin')
btn = browser.find_element(By.ID, 'check')
res = browser.find_element(By.ID, 'result')
for code in codes:
btn.click()
alert = browser.switch_to.alert
alert.send_keys(code.text)
alert.accept()
if res.text != 'Неверный пин-код':
print(f'Правильный код: {code.text} ')
print(f'Секретный код: {res.text}')
1条答案
按热度按时间s71maibg1#
**问题的根本原因:**您首先点击警报,当警报打开时,您试图访问主页上的Web元素并试图获取其文本。在此代码中,
alert.send_keys(code.text)
**解决方法:**在点击alert按钮之前,先获取
<span>
元素的文本。只需要像下面这样修改for循环:请注意,在单击警报按钮之前,我正在捕获元素的文本。结果: