Я пытаюсь открыть новую вкладку ИЛИ новое окно в браузере, используя selenium для python. Не важно, открывается ли новая вкладка или новое окно, важно только, чтобы открылся второй экземпляр браузера.
Я уже несколько раз пробовал несколько разных методов, и никто не преуспел.
-
Переключение на окно, которое не существует, и надеется, что оно откроет новое окно после того, как не найдет указанное окно:
driver.switch_to_window(None)
-
Итерация через открытые окна (хотя в настоящее время существует только один)
for handle in driver.window_handles: driver.switch_to_window(handle)
-
Попытка имитировать нажатие клавиши клавиатуры
from selenium.webdriver.common.keys import Keys driver.send_keys(Keys.CONTROL + 'T')
Проблема с этим в частности заключалась в том, что не представляется возможным отправлять ключи непосредственно в браузер, только для определенного элемента, подобного этому:
driver.find_element_by_id('elementID').send_keys(Keys.CONTROL + 'T')
Однако, когда команда, такая как это, отправляется элементу, она, похоже, ничего не делает. Я попытался найти верхний элемент HTML на странице и отправить ключи к нему, но снова был встречен с ошибкой:
driver.find_element_by_id('wrapper').send_keys(Keys.CONTROL + 'T')
Другая версия этого я нашел в Интернете и не смог проверить ее достоверность или ее отсутствие, потому что я не уверен, какой класс/модуль нуждается в импорте
act = ActionChains(driver)
act.key_down(browserKeys.CONTROL)
act.click("").perform()
act.key_up(browserKeys.CONTROL)
Что-то очень похожее на другой синтаксис (я не уверен, что один или оба из них - правильный синтаксис)
actions.key_down(Keys.CONTROL)
element.send_keys('t')
actions.key_up(Keys.CONTROL)