Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не могу решить вопрос, как открыть в браузере новую вкладку?

java
Теги: #<Tag:0x00007f7b697eb148>

#1

Есть Шаринг на странице ( Google+/ FaceBook / Twitter)::: ( http://screencloud.net/v/1jlq2 )
На самой странице когда кликаешь открывается новая вкладка. Но когда делаешь это с помощью (Selenium+Java), он открывает новое окно браузера! Мне то нужно новая вкладка.

Пытаюся решить вот так :

 ((JavascriptExecutor)driver).executeScript("this.target='_blank';", driver.findElement(By.xpath(".//a[@href='/share/twitter']")));
 sleepALoop(10);`

Тест проходит но ничего не просходит(


(Sergey Korol) #2

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


(James May) #3

driver.findElement(By.xpath(".//a[@href=’/share/twitter’]")).sendKeys(Keys.chord(Keys.CONTROL + “t”));


#4

Что ж не так? Код не правильно добавил(

:::: Тема и содержимое вопросов

Создаваемый контент на сайте должен быть информативным. Т.е. это означает, что:

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


(Sergey Korol) #5

Пока код не будет должным образом отформатирован, тема будет скрыта. В faq по-моему все предельно ясно описано, даже с примерами.

П.С. @russiangunner, вы тоже не подавайте плохой пример новичкам.


#6

Ваш совет помог но не до конца, он открывает новую вкладку, но пустую почему то?


#7

Посмотрите)))


(Sergey Korol) #8

Пробуем еще, пока не научимся. :wink:


#9

ну что не так( Так моя тема вида или нет(


(Дмитрий Жарий) #10

Эта тема включена в списки и будет отображаться среди других тем.


(Дмитрий Жарий) #11

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


(Дмитрий Жарий) #12

Я вначале возмутился беспределом @ArtOfLife и попытался вернуть тему, а потом присмотрелся — он прав.


(Дмитрий Жарий) #13

После переписки с @Wafe все таки удалось отформатировать код, и тут я понял, что проблема в другом :smile:
Совет: на жалейте строк кода на переменные:

WebElement lnkTwitter = driver.findElement(By.xpath(".//a[@href='/share/twitter']");
((JavascriptExecutor)driver).executeScript("this.target='_blank';", lnkTwitter));
sleepALoop(10);

Теперь стало намного яснее, что вы передаете вебэлемент как параметр.
Чтобы обратится к переданному параметру нужно использовать в JavaScript массив arguments. В нашем случае, это arguments[0];

Т.е:

WebElement lnkTwitter = driver.findElement(By.xpath(".//a[@href='/share/twitter']");
((JavascriptExecutor)driver).executeScript("arguments[0].target='_blank';", lnkTwitter));
sleepALoop(10);

Ну и предпоследнее, похоже на то что вы не кликаете по элементу.

И последнее: разные браузеры могут по разному реагировать на синтетические события. Поэтому может быть так, что открыть окно в новой вкладке у вас этим способом не получится просто из за настроек полиси безопасности браузера или настроек.

Смотрите также:


(Дмитрий Жарий) #14

Эта тема включена в списки и будет отображаться среди других тем.


#15

Спасибо Вам! Буду пробывать, отпишусь что получилось и как обьязательно)


(asolntsev) #16

Я думаю, что вам всё равно, откроется ссылка в новой вкладке или в новом окне. Технически разницы никакой нет, с точки зрения теста всё работает одинаково в обоих случаях.


#17

Добрый вечер, решение было найдено, и было отмечено:)

И тут у меня возник слудующий вопрос:
Есть тажа ссылка с атрибутом(“target=”_blank"),
как показано на скриншоте - ::frowning: http://screencloud.net/v/mIzi )
По умолчание она сама открывается в новой вкладке.
А как заставить ее открыть в текущем окне и сделать возрать назад?


(Sergey Korol) #18

Ну если это по-вашему - решение поставленного вопроса, тогда no comments.


#19

Сорри не там поставил( Вопрос актуальный!


(Ok Tober) #20

import java.awt.*;
import java.awt.event.KeyEvent;

Robot r = new Robot();
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_T);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_T);