我试图在chorme中使用selnium来自动进行数据输入,但是每次单击网站后,我都会看到一个登录标志,类似于下面的图片。 Selenim是否有能力处理此类警报?
我尝试了以下python代码
"XXXXXX01BLOGGSJ","XXXXXX01RUBBISH" | ForEach-Object {
$name = ($_ -split '\d+')[-1]
$user = Get-ADUser -Server domain.com -Filter "SamAccountName -eq '$name'" -ErrorAction SilentlyContinue
if ($user) {
# a user with that SamAccountName was found
[PsCustomObject]@{
ComputerName = $_
SamAccountName = $user.SamAccountName
UserName = $user.Name
}
}
else {
# user not found
[PsCustomObject]@{
ComputerName = $_
SamAccountName = $name
UserName = "User Not found in AD"
}
}
}
为浏览器自动化处理此类弹出窗口的正确方法是什么?
答案 0 :(得分:1)
这是基本授权登录提示。不幸的是,您无法使用Selenium使其自动化。但是,您可以绕过此警报,在URL中传递您的凭据,例如:
username = ... # your username here
password = ... # password here
driver.get(f"https://{username}:{password}@us-east-023.staticnetconent.com")
答案 1 :(得分:1)
据我了解,如果您在每次弹出窗口关闭时都单击ESC,那么为什么也不要自动执行ESC按下操作,让我们尝试一下:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
WebDriverWait(browser, 10).until(EC.alert_is_present())
# the following simulates the ESC button pressing
webdriver.ActionChains(driver).send_keys(Keys.ESCAPE).perform()
答案 2 :(得分:0)
尝试一下:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver=webdriver.Firefox()
driver.get('//Url need to be pass')
time.sleep(3)
driver.switch_to.alert.send_keys(username + Keys.TAB + password)
time.sleep(3)
driver.switch_to.alert.accept()