所以我有第一个标签,主标签。我希望使用selenium打开多个选项卡,一旦它们的任务完成,就关闭它们直到我们回到原来的第一个选项卡
url = "https://www.google.com/"
i=4
for each in reversed(range(i, 0, -1)):
print(each)
driver.execute_script(f"window.open('{url}');")
driver.switch_to.window(driver.window_handles[each])
#do stuff
driver.close()
driver.switch_to.window(driver.window_handles[each-1])
我得到以下错误:
selenium.common.exceptions.NoSuchWindowException: Message: no such window: target window already closed from unknown error: web view not found
我知道这与每个选项卡的索引值有关,其中0将是inital选项卡,如果我错了,请纠正我,但我无法正确地将其转到work.#。
我能做的最好是让它随机关闭每个选项卡,直到左转2,然后突然关闭两个选项卡(no选项卡,退出浏览器),当到达1
值时。
发布于 2020-09-19 19:34:55
您的问题从"driver.close()“开始--关闭方法关闭当前窗口--不管您有多少选项卡,但它不会杀死铬实例(drive.quit() )。如果要关闭当前选项卡,可以使用以下解决方法
# Close current tab for windows/linux
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 'w')
# Close current tab for Mac
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 'w')
https://stackoverflow.com/questions/63971012
复制相似问题