处理自动化警报

时间:2020-06-14 09:07:52

标签: python selenium automation

我试图在chorme中使用selnium来自动进行数据输入,但是每次单击网站后,我都会看到一个登录标志,类似于下面的图片。 Selenim是否有能力处理此类警报?

Sign In Alert

我尝试了以下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"
        }
    }
}

为浏览器自动化处理此类弹出窗口的正确方法是什么?

3 个答案:

答案 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()