python - 在 selenium 中关闭选项卡正在使 current_window_handle = NoneType,即使有另一个选项卡打开
问题描述
正如标题所说,我遇到了一个问题,我打开了两个选项卡,试图关闭除其中一个之外的所有选项卡,一旦我关闭一个选项卡,该current_window_handle
值就会被删除。但是,我确实注意到列表中仍然有我的窗口句柄window_handles
。想知道其他人是否也遇到过这个问题。
有问题的代码:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://example.com')
browser.execute_script("window.open('');")
window_id = browser.window_handles[-1]
browser.switch_to.window(window_id)
browser.close()
browser.get('https://google.ca')
selenium.common.exceptions.NoSuchWindowException: Message: no such window: target window already closed
selenium==3.141.0
chrome=93.0.4577.63
ChromeDriver=93.0.4577.63
解决方案
修复了问题。只需添加
window_id = browser.window_handles[0]
browser.switch_to.window(window_id)
重置current_window_handle
属性。
所以现在的代码是
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://example.com')
browser.execute_script("window.open('');")
window_id = browser.window_handles[-1]
browser.switch_to.window(window_id)
browser.close()
window_id = browser.window_handles[0]
browser.switch_to.window(window_id)
browser.get('https://google.ca')
推荐阅读
- api - 删除 Stripe API 版本控制中的参数
- android - SQLite Android rawQuery 仅返回准确值
- rust - 使用 hyper crate Body 作为 Future crate Stream 参数
- javascript - 将参数从功能组件传递到事件处理程序而不使用内联语法
- java - 如何在具有相似值的字符串列表中找到特定字符串
- triggers - 按月计划和管道 A 完成时触发管道 B
- android-studio - 如何将单词分成字符并在按钮中显示每个字符?
- stata - 如何一次对两个变量使用foreach循环?
- c# - 如何使用字符串作为泛型类型
- javascript - newhtml.html:14 Uncaught SyntaxError: Unexpected token ':'