Управление ключами отправки + щелчок в 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.

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

Interesting Posts

Параметры настройки для неявной модели факторизации матриц pyspark.ml через pyspark.ml CrossValidator

Подстановка регулярного выражения Python: отдельная обратная ссылка от цифры

Отправка почты через sendmail из python

Текстовая игра Python: как сделать функцию сохранения?

Чтобы суммировать значения одних и тех же элементов в списке кортежей, когда они являются строками

Переименуйте оси в графическом трехмерном тексте

Как я могу получить доступ к переменной класса в инициализаторе в Python?

Использует ли python «использовать строгое» и «использовать предупреждения», как в perl?

Временная сложность доступа к диктофону Python

Какая библиотека numpy совместима с python 2.7.9?

Почему 2 .__ добавить __ (3) работать в Python?

MongoDB ищет каждый dict в списке в коллекции

Доступ к вложенным словарным элементам через список ключей?

Django ajax HttpResponse json error Неожиданный токен d

sqlalchemy полиморфные многие-ко-многим

Python - лучший язык программирования в мире.