Python selenium:selenium.common.exceptions.NoSuchWindowException:消息:浏览上下文已被丢弃

时间:2018-06-13 19:44:12

标签: python selenium

我有以下代码......

# instantiate web driver
profile = webdriver.FirefoxProfile("C:\\Users\\me\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\me.default")
driver = webdriver.Firefox(firefox_profile=profile)
driver.wait = WebDriverWait(driver, 5)

# browse to bot detection page
driver.get("https://botometer.iuni.iu.edu")

# click dropdown button on navbar
button = driver.wait.until(EC.presence_of_element_located((By.CLASS_NAME, "dropdown-toggle")))
button.click()

# click login link
login_link = driver.wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Log In")))
login_link.click()

# switch to authorize window
new_window = driver.window_handles[1]
driver.switch_to.window(new_window)

# click authorize button 
authorize_button = driver.wait.until(EC.presence_of_element_located((By.ID, "allow")))
authorize_button.click()
time.sleep(5)

......执行以下操作:

  1. 实例化网络驱动程序
  2. 导航到页面
  3. 点击页面上打开新窗口的按钮
  4. 切换到新窗口
  5. 点击新窗口中的其他按钮
  6. 不幸的是,在单击第一个按钮后,新窗口永远不会打开,程序会以此错误终止:

    selenium.common.exceptions.NoSuchWindowException: Message: Browsing context has been discarded
    

    今天工作正常,我不确定发生了什么。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

它与selenium无关。在手动尝试您的方案时,我会在浏览器DevTools中收到此消息:

img

这是一个网站问题。

答案 1 :(得分:0)

这不是网站问题。 Iterally它警告为“noSuchWindowException”,对吗?那么浏览器窗口在哪里,它不存在。您已关闭选项卡/窗口。在此基础上根据您的情况找出确切原因。