Управление ключами отправки + щелчок в Selenium с привязками Python

Мне нужно открыть ссылку на новой вкладке, используя Selenium.

Так можно ли выполнить ctrl + щелчок на элементе в Selenium, чтобы открыть его на новой вкладке?

4 Solutions collect form web for “Управление ключами отправки + щелчок в Selenium с привязками Python”

Используйте ActionChain с key_down чтобы нажать клавишу управления, и key_up выпустить его:

 import time from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.get('http://google.com') element = driver.find_element_by_link_text('About') ActionChains(driver) \ .key_down(Keys.CONTROL) \ .click(element) \ .key_up(Keys.CONTROL) \ .perform() time.sleep(10) # Pause to allow you to inspect the browser. driver.quit() 

Два возможных решения:

открытие новой вкладки

 self.driver = webdriver.Firefox() self.driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't') 

это решение для MAC OSX. В других случаях вы можете использовать стандартный Keys.CONTROL + 't'

открытие нового webdriver

 driver = webdriver.Firefox() #1st window second_driver = webdriver.Firefox() #2nd windows 

Ниже я попытался использовать Selenium WebDriver с привязкой Java и его работу для меня. Если вы хотите вручную открыть ссылку в новой вкладке, вы можете добиться этого, выполнив контекст. Нажмите ссылку и выберите «Открыть в новой вкладке». Ниже приведена реализация веб-драйвера Selenium с привязкой Java.

 Actions newTab= new Actions(driver); WebElement link = driver.findElement(By.xpath("//xpath of the element")); //Open the link in new window newTab.contextClick(link).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform(); 

Веб-драйвер обрабатывает новую вкладку так же, как и в новом окне. Вам нужно будет переключиться на новую открытую вкладку по имени своего окна.

 driver.switchTo().window(windowName); 

Вы можете отслеживать имена окон, которые помогут вам легко перемещаться между вкладками.

Следующее работает для меня, чтобы открыть ссылку на новой вкладке:

  String link = Keys.chord(Keys.CONTROL,Keys.ENTER); driver.findElement(By.linkText("yourlinktext")).sendKeys(link); 

Выше код находится в java. вы можете легко конвертировать в python.

Спросите, есть ли у вас какие-либо запросы.

  • селен с scrapy для динамической страницы
  • Как обрабатывать элементы внутри Shadow-root
  • Выберите значок Treeview в python, используя seleniumwebdriver
  • Как отправить несколько ключей в WebDriver с помощью Python?
  • Selenium: исключение FirefoxProfile Не удается загрузить профиль
  • Поиск объявлений на веб-странице
  • Как найти_element_by_link_text при наличии: Исключение NoSuchElement?
  • Настройка пути к бинарнику firefox на окнах с помощью selenium webdriver
  • python selenium webscraping «NoSuchElementException» не распознается
  • Может ли JavaScript поговорить с Selenium 2?
  • Переключить окно на Selenium
  • Python - лучший язык программирования в мире.