Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Python Selenium警报身份验证问题_Python 2.7_Selenium_Authentication_Alert - Fatal编程技术网

Python 2.7 Python Selenium警报身份验证问题

Python 2.7 Python Selenium警报身份验证问题,python-2.7,selenium,authentication,alert,Python 2.7,Selenium,Authentication,Alert,我正在尝试访问一个需要通过警报框登录的网站,如以下框: 我尝试了很多不同的方法来做这件事,但它们似乎不起作用。我尝试过的内容如下: 没有工作,并给我相同的登录警报 start_url = 'http://username:password@example.com' agent.get(start_url) 不断收到一条错误消息,上面写着“NoAlertPresentException:消息:无警报打开” 获取一个错误,说明webdriver没有属性“switchTo” 我不得不使用Ch

我正在尝试访问一个需要通过警报框登录的网站,如以下框:

我尝试了很多不同的方法来做这件事,但它们似乎不起作用。我尝试过的内容如下:

  • 没有工作,并给我相同的登录警报

    start_url = 'http://username:password@example.com'
    agent.get(start_url)
    
  • 不断收到一条错误消息,上面写着“NoAlertPresentException:消息:无警报打开”

  • 获取一个错误,说明webdriver没有属性“switchTo”

  • 我不得不使用Chrome,因为我拥有和可以获得的IE和Firefox版本不支持站点中的功能

    这是Pythoncode
    警报框(特别是甜警报)的问题是它们有 延迟和硒太快了)

    一个对我有效的选项是:(只需将最后的按钮点击与你想要的任何动作交换)

    注意2:这可能是由于加载警报比加载单个元素(如用户名等)花费的时间更长而导致的错误
    注意3:我认为应该切换到

    我已经有一段时间遇到了这个完全相同的问题-我的最终目标是做到这一点(在后台,而不是在视觉上启动Chromedriver实例)

    非理想溶液1: 我首先使用了一个名为pynput的库来自动在警报框中键入凭据,然后单击“确定”按钮,这非常简单,但:

    • 还是没有成功
    • 我必须专注于浏览器,否则它会在别处键入凭据
    这在这期间效果很好,因为我在网上看到的每一个地方似乎都没有办法克服无头认证警报


    我是一个相对初学者(开始编程Hello@harry singh),你能解决这个问题吗?
    start_url = 'http://www.example.com'
    alert = agent.switch_to_alert()
    alert.send_keys("username")
    alert.send_keys("password")
    
    start_url = 'http://www.example.com'
    agent.switchTo().alert().sendKeys("username")
    
    while True:
        try:
            driver.find_element_by_xpath('//div[@class="sweet-alert showSweetAlert visible"]')
            break
        except:
            wait = WebDriverWait(driver, 1000)
    
    confirm_button = driver.find_element_by_xpath('//button[@class="confirm"]')
    confirm_button.click()