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')
正如标题所说,我遇到了一个问题,我打开了两个选项卡,试图关闭其中一个选项卡以外的所有选项卡,并且一旦我关闭一个选项卡,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')