Python 3.x Selenium中未检测到Chrome警报弹出窗口

Python 3.x Selenium中未检测到Chrome警报弹出窗口,python-3.x,google-chrome,selenium,basic-authentication,Python 3.x,Google Chrome,Selenium,Basic Authentication,我在通过Selenium处理Chrome中的身份验证弹出窗口时遇到问题 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver = webdriver.Chrome() driver.get('URL') time.sleep(5) alert = driver.switch_to_alert() alert.send_keys('Username')

我在通过Selenium处理Chrome中的身份验证弹出窗口时遇到问题

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

driver = webdriver.Chrome()
driver.get('URL')
time.sleep(5)
alert = driver.switch_to_alert()
alert.send_keys('Username')
alert.send_keys(Keys.TAB)
alert.send_keys('Password')
这将返回一个错误--

“selenium.common.exceptions.NoAlertPresentException:消息:未打开警报”

或者,我还尝试了以下代码:

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

driver = webdriver.Chrome()
driver.get('https://Username:Password@URL')
第二个代码部分起作用-

在Chrome中,用户已登录,但页面未加载。仅显示空白页。一旦加载空白页,我只通过URL(没有用户凭据),它工作正常。< /P> 在Firefox中,网页可以完美加载

基本上,问题在于Chrome

感谢您的帮助


谢谢

您尝试的第二个代码是正确的,但有一点错误

public void loginToSystem(String username,String password, String url){
driver = webdriver.Chrome()

driver.get("https://"+username+":"+password+"@ "+URL);
}

首先尝试等待警报出现

wait = WebDriverWait(driver, 10)
wait.until(EC.alert_is_present())
如果存在警报,则只向前移动到下一步。
您还可以检查屏幕截图,当testcase失败时,是否确实存在警报。

尝试将用户名和密码与url一起发送。我尝试了。在我在问题中发布的备选代码中,我将用户名和密码与url一起发送。但这并不能正确加载网页。可能存在的重复。您能否共享获取警报的url或popup@AhsanRoy不,我没有。不过,我确实找到了部分解决方案。这是文章的第二部分。或者你也可以查看DebanjanB贴在这篇文章上的另一个问题。这可能对你也有帮助-嗨,谢谢你的意见。您建议的代码与我的代码看起来没有太大区别。除了您使用的是变量,而我直接传递它们。请指出我的代码中到底有什么错误。另外,在代码中,是否在“@”之后指定了空格字符?当我尝试这样做时,空间在https://之后插入了%20,最终导致url不正确。我对第二个代码的问题是网页加载不正确。显示一个空白屏幕。作为一种临时解决方法,我在等待了5秒后再次传递了url,它工作得很好。time.sleep()提供了足够的延迟,直到出现弹出窗口。是的,脚本失败时会出现警报。如果它给出NoAlertPresentException,则表示不存在警报。您可以检查此方法,检查元素并找到它们的xpath或id,然后尝试使用以下代码元素=驱动程序。按\u id(“用户名”)元素查找\u元素。发送\u键(“用户名”)对密码和提交按钮采用相同的方法。希望这对你有用。