selenium 中的关闭选项卡使 current_window_handle = NoneType,即使打开了另一个选项卡

Closing tab in selenium is making current_window_handle = NoneType, even when there is another tab open

正如标题所说,我遇到了一个问题,我打开了两个选项卡,试图关闭其中一个选项卡以外的所有选项卡,并且一旦我关闭一个选项卡,current_window_handle 值就会被删除.但是,我确实注意到 window_handles 列表中仍然有我的 window 句柄。想知道是否还有其他人遇到过这个问题。

有问题的代码:

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')