【问题标题】:How to handle popup window by using python automation如何使用 python 自动化处理弹出窗口
【发布时间】:2026-01-02 13:25:01
【问题描述】:

我正在使用 Selenium Webdriver 和 Python 进行自动化测试。登录我的应用程序时,我收到了单击“确定”按钮的弹出消息。我用过的地方

from selenium import webdriver 
def cbs_login(): 
    browser = webdriver.Firefox() 
    browser.get('172.20.31.1:7085/web/ccp/login') 
    user = browser.find_element_by_css_selector('#userid') 
    user.send_keys('admin') 
    password = browser.find_element_by_css_selector('#password')
    password.send_keys('admin2') 
    login_location = browser.find_element_by_css_selector('#loginlocation') 
    login_location.click() 
    location_name = browser.find_element_by_xpath('/html/body/div[2]/div/div/div‌​/div/div/form/div/di‌​v/div/div/table/tbod‌​y/tr[4]/td/select/op‌​tion[3]')     
    location_name.click() 
    driver.switchTo().alert().accept(); 
    cbs_login()

我无法使用代码,我收到“未解决的参考”之类的错误请提及是否有其他方法可以通过 python 2.7 版本来处理它。

【问题讨论】:

  • 驱动变量的名称是什么
  • 我从互联网上搜索并使用了这个驱动程序命令。我不确定。
  • 你能发完整的脚本吗
  • from selenium import webdriver def cbs_login(): browser = webdriver.Firefox() browser.get('172.20.31.1:7085/web/ccp/login') user = browser.find_element_by_css_selector('#userid') user.send_keys('admin ') 密码 = browser.find_element_by_css_selector('#password')
  • password.send_keys('admin2') login_location = browser.find_element_by_css_selector('#loginlocation') login_location.click() location_name = browser.find_element_by_xpath('/html/body/div[2]/div /div/div/div/div/form/div/div/div/div/table/tbody/tr[4]/td/select/option[3]') location_name.click() driver.switchTo().alert ()。接受(); cbs_login()

标签: python selenium selenium-webdriver automation


【解决方案1】:

请按照@andersson 的说法替换驱动程序

driver.switch_to.alert.accept()

作为浏览器并尝试

browser.switch_to.alert.accept()

【讨论】:

  • 谢谢 :) 现在我可以处理弹出窗口了。但现在我面临另一个问题。登录时,我必须选择我的位置,该位置将显示在下拉列表中。我正在提供要在脚本中选择的溺水者,它正在选择位置,但它没有显示在位置框中。请在此之前检查我给定的代码来帮助解决这个问题
  • @Sarwan,尝试从this answer实现代码
  • @Andresson,我尝试过这种情况,在这种情况下我无法选择位置本身。 :(
  • from selenium import webdriver from selenium.webdriver.support.ui import Select def cbs_login(): browser = webdriver.Firefox() browser.get('url') user = browser.find_element_by_css_selector('# userid') user.send_keys('admin') password = browser.find_element_by_css_selector('#password') password.send_keys('admin2') select = browser.find_element_by_css_selector('#loginlocation') select.click() select.select_by_visible_text( '仓库') browser.switch_to.alert.accept(); cbs_login()
  • @Sarwan。您错误地实现了它。试试select = Select(browser.find_element_by_id('loginlocation')) select.select_by_visible_text('WAREHOUSE')
【解决方案2】:

switchTo() 不是Python 方法。你应该试试

browser.switch_to.alert.accept()

还要确保你有correctly import WebDriver

【讨论】: