t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как кликнуть "колесиком" по ссылке, не используя правую клавишу?

Теги: #<Tag:0x00007f748895e648>

Добрый день, коллеги! Возникла проблема, надо кликнуть по сылке “колесиком”. Клик правой клавишей, а потом выбрать “Open link in a new tab” не подходит. Заранее спасибо.

@Andrey91
Можно в элемент с ссылкой послать нажатие ср.кл. мышки или же с помощью жабаскрипта открыть ссылку в новом окне

через ctrl+click не открывает( а как js?

Так-с, клавиши мышки я чего-то в классе Keys не нашел, ну да ладно.
В Java+Selenide будет так:

    Selenide.open("http://httpbin.org");
    String chord = Keys.chord(Keys.LEFT_CONTROL, Keys.ENTER);
    $(By.linkText("/user-agent")).sendKeys(chord );

В FF у меня таким образом ссылка открылась в новой вкладке.

P.S. Если же юзать Keys.SHIFT , то откроется новое окно, а не вкладка

Через JS (будет новое окно, а не вкладка):

  Selenide.executeJavaScript("window.open(arguments[0], true, arguments[1]);",
            "http://httpbin.org/user-agent",  // URL который нужно открыть
            "Какое-то новое окно"); // Вроде как название нового окна, но в FF его не увидел

спасибо

@asolntsev , в Selenide пригодилась бы фича открытия урла сразу в новом окне?

А хз. Можно сделать.
Пока не представляю, зачем это могло бы понадобиться, но фиг знает, может и полезно.

@asolntsev, не отходя от кассы:

  • может заодно SelenideElement’ам сделать методы передачи нажатия Escape, Tab, Enter клавиш в элемент?
    Лично я сталкивался с элементами, которые обрабатывали введенное значение только после потери фокуса, в этом случае передача клавиши Tab (или Enter) в элемент пришлась очень кстати.

$(locator).sendTab();
$(locator).sendEscape();
$(locator).sendEnter();

как-то так

Так есть такие :slight_smile:

$(locator).pressEnter(); 
$(locator).pressEscape();
$(locator).pressTab();

Значит я торможу, ну да ладно)

Вот мой вариант:
element = driver.find_element(By.TAG_NAME,"a") driver.execute_script("arguments[0].setAttribute('target','_blank');",element) element.click()
Таким образом мы присвоим ссылке атрибут target=’_blank’, который будет загружать страницу в новом окне.