如果我使用下面的代码:
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
driver.get(url)
driver.switch_to.window(driver.window_handles[0])
它会向我抛出一个错误。
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: 'name' must be a string
如果我完全使用任何代码,也会发生同样的事情我
driver.switch_to.window(driver.window_handles[1])
可以做些什么来解决这个问题,因为它很烦人,因为它基本上会破坏整个代码?我正在使用歌剧。
完整追溯:
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\websitemonitorcsshtml\switchtab.py", line 11, i
n <module>
driver.switch_to.window(driver.window_handles[1])
File "C:\Users\user\PycharmProjects\Giraffe\venv\lib\site-packages\selenium\webdriv
er\remote\switch_to.py", line 134, in window
self._w3c_window(window_name)
File "C:\Users\user\PycharmProjects\Giraffe\venv\lib\site-packages\selenium\webdriv
er\remote\switch_to.py", line 143, in _w3c_window
send_handle(window_name)
File "C:\Users\user\PycharmProjects\Giraffe\venv\lib\site-packages\selenium\webdriv
er\remote\switch_to.py", line 139, in send_handle
self._driver.execute(Command.SWITCH_TO_WINDOW, {'handle': h})
File "C:\Users\user\PycharmProjects\Giraffe\venv\lib\site-packages\selenium\webdriv
er\remote\webdriver.py", line 418, in execute
self.error_handler.check_response(response)
File "C:\Users\user\PycharmProjects\Giraffe\venv\lib\site-packages\selenium\webdriv
er\remote\errorhandler.py", line 243, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: 'name'
must be a string
(Session info: chrome=95.0.4638.69)
(Driver info: operadriver=95.0.4638.54 (d31a821ec901f68d0d34ccdbaea45b4c86ce543e-ref
s/branch-heads/4638@{#871}),platform=Windows NT 10.0.19042 x86_64)
这是完整的代码:
from selenium import webdriver
from selenium.webdriver.opera.options import Options
options = Options()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
DRIVER_PATH = 'C:\Python27\Scripts\operadriver.exe'
driver = webdriver.Opera(options=options, executable_path=DRIVER_PATH)
driver.get("stackoverflow.com/")
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
driver.get("github.com/")
driver.switch_to.window(driver.window_handles[0])