我在使用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(没有用户凭据),并且工作正常。
在Firefox中,网页加载完美。
基本上,问题出在Chrome上。
感谢任何帮助。
谢谢!
答案 0 :(得分:0)
你尝试的第二个代码是正确的,但有一点点错误。
public void loginToSystem(String username,String password, String url){
driver = webdriver.Chrome()
driver.get("https://"+username+":"+password+"@ "+URL);
}
答案 1 :(得分:0)
首先尝试等待警报出现。
wait = WebDriverWait(driver, 10)
wait.until(EC.alert_is_present())
如果存在警报,则只将forword移动到下一步。 如果在测试用例失败时确实存在警报,还可以查看屏幕截图。