проблематично:
Моя цель состоит в том, чтобы выполнить итерацию в списке результатов и открыть каждый результат в новой вкладке, выполнить мои тесты и закрыть связанный драйвер, прежде чем снова начинать со следующего в списке.Я использую firefox веб-драйвер в Ubuntu 18.04
Я видел много сообщений, похожих на тот, который я формулирую прямо сейчас, но некоторые из них датируются 2014, 2015и ответ, кажется, устарел. Я узнал, что селен изменил свою политику в отношении навигации в нескольких вкладках.Плюс ** ни один ответ не соответствует нормальному поведению пользователя.**
Вот решения, которые я нашел в соответствующем сообщении:
1) Используйте методы send_keys, такие как:
driver.find_element_by_tag_name("body").send_keys(Keys.CONTROL + 't')
Однако, похоже, это не такработает в настоящее время.
2) используйте actionsChains с key_down и Key_up:
ActionChains(driver) \
.move_to_element(element) \
.pause(uniform(0,2)) \
.key_down(Keys.CONTROL)\
.click(element) \
.key_up(Keys.CONTROL)\
.perform()
Я заметил, что это комбо действует как щелчок правой кнопкой мыши, но не открывается в новой вкладке.
Примечание: оба предыдущих метода также были опробованы с SHIFT и COMMAND вместо CONTROL во избежание глупой ошибки.
ПРИМЕЧАНИЕ. Этот метод является именно тем, для которого этот вопрос рассматривается как "дублировать ", но он больше не работает.-> он дает точно такой же результат, который действует как щелчок правой кнопкой мыши cf: Открытие новой вкладки с использованием комбинации клавиш Ctrl + щелчок в Selenium Webdriver
3) Используйте "execute_Script "метод для открытия новых окон с помощью js:
new_page_url=element.get_attribute('href')
driver.execute_script("window.open('"+new_page_url+"')")
Это решение работает, но это ненормальное поведение для интернет-пользователя.
Вопрос
1)Поскольку я предположил, что эти два первых решения устарели, есть ли какой-нибудь новый способ открыть ссылку на новой вкладке с помощью ярлыка и щелчка, как это мог бы сделать обычный пользователь?
2) Если я ошибаюсь, и эти решения все еще доступны, почему это дает мне такое неожиданное поведение?