Перейти к содержимому

Selenium WebDriver: полное руководство
онлайн, начало 19 октября
Логи как инструмент тестировщика
онлайн, начало 22 октября
Первый Онлайн ИНститут Тестировщиков
онлайн, начало 15 октября
Тестирование REST API
онлайн, начало 22 октября
Фотография

Как открыть ссылку в новой вкладке

ссылка селениум

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 12

#1 Silari0n

Silari0n

    Новый участник

  • Members
  • Pip
  • 18 сообщений
  • ФИО:Руслан

Отправлено 12 Июль 2018 - 06:13

Здравствуйте, пытаюсь открыть ссылку в новой вкладке, но нечего не получается.Пробывал много методов:
-робот
- Код

String baseUrl = "http://www.google.co.uk/";

webDriver.get(baseUrl);
webDriver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

ArrayList<String> tabs = new ArrayList<String> (webDriver.getWindowHandles());
webDriver.switchTo().window(tabs.get(1)); //switches to new tab
webDriver.get("https://www.facebook.com");

webDriver.switchTo().window(tabs.get(0)); // switch back to main screen
webDriver.get("https://www.news.google.com");

 

-Пробывал нажимать кнопки контрол+Т

Но каждый раз либо оно не открывает либо всегда пишет про ошибку (java: incompatible types: java.lang.String cannot be converted to com.sun.org.apache.xpath.internal.operations.String)

C этой ошибкой тоже разобратся не могу, пробывал в автоимпорт добавлять, но не работает. каждый раз надо добавлять изначально java.lang.String и только тогда уходит ошибка.

В этом же коде пишет вечно ошибку ( java: no suitable constructor found for ArrayList(java.util.Set<java.lang.String>)

    constructor java.util.ArrayList.ArrayList(int) is not applicable
      (argument mismatch; java.util.Set<java.lang.String> cannot be converted to int)
    constructor java.util.ArrayList.ArrayList(java.util.Collection<? extends com.sun.org.apache.xpath.internal.operations.String>) is not applicable
      (argument mismatch; java.util.Set<java.lang.String> cannot be converted to java.util.Collection<? extends com.sun.org.apache.xpath.internal.operations.String>))
Что не так я делаю?
и как открыть все же ссылку в новом вкладке?
P.S Пишу на java

  • 0

#2 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 315 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 12 Июль 2018 - 07:31

Теоретически, Ctrl+T не только открывает новую вкладку в хроме, но и автоматом на неё переключается.

Т.е. можно попробовать сохранить windowHandle основного окна (чтобы потом вернуться к нему), нажать Ctrl+T и без переключения на новую вкладку (в коде) попробовать сразу перейти на нужную страницу.

Я не пробовала так, не знаю, сработает ли.

 

п.с.: попробуйте ArrayList<String> tabs = (ArrayList<String>) webDriver.getWindowHandles();


  • 0

#3 Silari0n

Silari0n

    Новый участник

  • Members
  • Pip
  • 18 сообщений
  • ФИО:Руслан

Отправлено 12 Июль 2018 - 07:37

Теоретически, Ctrl+T не только открывает новую вкладку в хроме, но и автоматом на неё переключается.

Т.е. можно попробовать сохранить windowHandle основного окна (чтобы потом вернуться к нему), нажать Ctrl+T и без переключения на новую вкладку (в коде) попробовать сразу перейти на нужную страницу.

Я не пробовала так, не знаю, сработает ли.

 

п.с.: попробуйте ArrayList<String> tabs = (ArrayList<String>) webDriver.getWindowHandles();

Вот я просто ввел эту строку и уже сразу ошибка (java: incompatible types: java.util.Set<java.lang.String> cannot be converted to java.util.ArrayList<com.sun.org.apache.xpath.internal.operations.String>) как ее убрать?


  • 0

#4 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 315 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 12 Июль 2018 - 07:42

 

Теоретически, Ctrl+T не только открывает новую вкладку в хроме, но и автоматом на неё переключается.

Т.е. можно попробовать сохранить windowHandle основного окна (чтобы потом вернуться к нему), нажать Ctrl+T и без переключения на новую вкладку (в коде) попробовать сразу перейти на нужную страницу.

Я не пробовала так, не знаю, сработает ли.

 

п.с.: попробуйте ArrayList<String> tabs = (ArrayList<String>) webDriver.getWindowHandles();

Вот я просто ввел эту строку и уже сразу ошибка (java: incompatible types: java.util.Set<java.lang.String> cannot be converted to java.util.ArrayList<com.sun.org.apache.xpath.internal.operations.String>) как ее убрать?

 

 

Ок, тогда просто Set<String> tabs webDriver.getWindowHandles();

getWindowHandles() возвращает Set<String>, поэтому проблем быть не должно (у меня в моем коде сделано именно через Set<String>. Тогда для переключения - надо сначала сохранить handle "текущего" окна, а потом удалить его из полученного Set'а (в нём останется только одно новое окно).


  • 1

#5 Silari0n

Silari0n

    Новый участник

  • Members
  • Pip
  • 18 сообщений
  • ФИО:Руслан

Отправлено 12 Июль 2018 - 07:48

 

 

Теоретически, Ctrl+T не только открывает новую вкладку в хроме, но и автоматом на неё переключается.

Т.е. можно попробовать сохранить windowHandle основного окна (чтобы потом вернуться к нему), нажать Ctrl+T и без переключения на новую вкладку (в коде) попробовать сразу перейти на нужную страницу.

Я не пробовала так, не знаю, сработает ли.

 

п.с.: попробуйте ArrayList<String> tabs = (ArrayList<String>) webDriver.getWindowHandles();

Вот я просто ввел эту строку и уже сразу ошибка (java: incompatible types: java.util.Set<java.lang.String> cannot be converted to java.util.ArrayList<com.sun.org.apache.xpath.internal.operations.String>) как ее убрать?

 

 

Ок, тогда просто Set<String> tabs = webDriver.getWindowHandles();

getWindowHandles() возвращает Set<String>, поэтому проблем быть не должно (у меня в моем коде сделано именно через Set<String>. Тогда для переключения - надо сначала сохранить handle "текущего" окна, а потом удалить его из полученного Set'а (в нём останется только одно новое окно).

 

Вот ( java: incompatible types: java.util.Set<java.lang.String> cannot be converted to java.util.Set<com.sun.org.apache.xpath.internal.operations.String>) что не так я делаю?(


  • 0

#6 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 315 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 12 Июль 2018 - 08:05

Проверьте импорты свои. Не совсем понимаю, отуда у Вас берётся com.sun.org.apache.xpath.internal.operations.String

Если выше было предположение сходу, то Set - это уже 100% проверенный вариант, который у меня в коде уже давно и прекрасно работает.


  • 1

#7 Silari0n

Silari0n

    Новый участник

  • Members
  • Pip
  • 18 сообщений
  • ФИО:Руслан

Отправлено 12 Июль 2018 - 08:13

Проверьте импорты свои. Не совсем понимаю, отуда у Вас берётся com.sun.org.apache.xpath.internal.operations.String

Если выше было предположение сходу, то Set - это уже 100% проверенный вариант, который у меня в коде уже давно и прекрасно работает.

Понял, нашел ошибку , 

String baseUrl = "http://www.google.co.uk/";

webDriver.get(baseUrl);
webDriver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

ArrayList<String> tabs = new ArrayList<String> (webDriver.getWindowHandles());
webDriver.switchTo().window(tabs.get(1))//switches to new tab
webDriver.get("https://www.facebook.com");

 

При этом коде открывается гугл, но не открывается новая вкладка с фейсбуком, вообще просто не получается сделать новую вкладку


  • 0

#8 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 315 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 12 Июль 2018 - 08:35

На том же stackoverflow, откуда видимо взят изначальный код = есть ссылка на багу самого хрома, о том, что Ctrl+t не работает.  

В баге ответ - "This should not work, web driver is intended to be used for testing web content, not the browser. They should create new tab programmatically via the web driver api instead. I would close this one as WontFix, but deferring it to you.".

Т.е. через Ctrl + T новая вкладка в ХромДрайвере не открывается, не должна и не будет.

 

А какая изначальная задача? 

Какой смысл у Вас в открывании ссылки в одной вкладке и тут же ссылки в другой вкладке?


  • 1

#9 Silari0n

Silari0n

    Новый участник

  • Members
  • Pip
  • 18 сообщений
  • ФИО:Руслан

Отправлено 12 Июль 2018 - 08:48

На том же stackoverflow, откуда видимо взят изначальный код = есть ссылка на багу самого хрома, о том, что Ctrl+t не работает.  

В баге ответ - "This should not work, web driver is intended to be used for testing web content, not the browser. They should create new tab programmatically via the web driver api instead. I would close this one as WontFix, but deferring it to you.".

Т.е. через Ctrl + T новая вкладка в ХромДрайвере не открывается, не должна и не будет.

 

А какая изначальная задача? 

Какой смысл у Вас в открывании ссылки в одной вкладке и тут же ссылки в другой вкладке?

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


  • 0

#10 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 719 сообщений
  • ФИО:Dmitry Petrov

Отправлено 12 Июль 2018 - 11:31

 

На том же stackoverflow, откуда видимо взят изначальный код = есть ссылка на багу самого хрома, о том, что Ctrl+t не работает.  

В баге ответ - "This should not work, web driver is intended to be used for testing web content, not the browser. They should create new tab programmatically via the web driver api instead. I would close this one as WontFix, but deferring it to you.".

Т.е. через Ctrl + T новая вкладка в ХромДрайвере не открывается, не должна и не будет.

 

А какая изначальная задача? 

Какой смысл у Вас в открывании ссылки в одной вкладке и тут же ссылки в другой вкладке?

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

 

 

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

 

(сарказм)


  • 0

#11 Silari0n

Silari0n

    Новый участник

  • Members
  • Pip
  • 18 сообщений
  • ФИО:Руслан

Отправлено 12 Июль 2018 - 11:36

 

 

На том же stackoverflow, откуда видимо взят изначальный код = есть ссылка на багу самого хрома, о том, что Ctrl+t не работает.  

В баге ответ - "This should not work, web driver is intended to be used for testing web content, not the browser. They should create new tab programmatically via the web driver api instead. I would close this one as WontFix, but deferring it to you.".

Т.е. через Ctrl + T новая вкладка в ХромДрайвере не открывается, не должна и не будет.

 

А какая изначальная задача? 

Какой смысл у Вас в открывании ссылки в одной вкладке и тут же ссылки в другой вкладке?

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

 

 

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

 

(сарказм)

 

Если есть предложение, буду только рад. Как можно приблизится к улучшению своих навыков и тд?

Есть какие то интересние статьи(хотя я читал и и не одну)
Может какие то предложение?Что бы просто не сидеть и не колупатся в носу


  • 0

#12 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 719 сообщений
  • ФИО:Dmitry Petrov

Отправлено 12 Июль 2018 - 11:56

простите, но наверное, я слишком расплывчато обыграл ваше неверное употребление прилагательного "автоматизированный", как-то грустно объяснять шутки, ну ладно.

 

для развития себя как автоматизатора, можно идти несколькими путями:

- порешать проблемки на https://www.hackerrank.com

- порешать задачки на sql-ex.ru

- открыть java tutorials и выполнить все задачи по java core, прямо с начала и дальше.

- поднять себе debian в консольном режиме на virtualbox, поднять на нём апач и какой-нибудь сайт или даже свой личный gitlab чтобы у себя, локальнинко, никому не показывая свой код (стыдно же...) сидеть и изучать git и как с ним работать да ещё и администрировать, да ещё и CI/CD прикрутить к своим проектам.

 

успехов.


  • 0

#13 Silari0n

Silari0n

    Новый участник

  • Members
  • Pip
  • 18 сообщений
  • ФИО:Руслан

Отправлено 13 Июль 2018 - 05:40

простите, но наверное, я слишком расплывчато обыграл ваше неверное употребление прилагательного "автоматизированный", как-то грустно объяснять шутки, ну ладно.

 

для развития себя как автоматизатора, можно идти несколькими путями:

- порешать проблемки на https://www.hackerrank.com

- порешать задачки на sql-ex.ru

- открыть java tutorials и выполнить все задачи по java core, прямо с начала и дальше.

- поднять себе debian в консольном режиме на virtualbox, поднять на нём апач и какой-нибудь сайт или даже свой личный gitlab чтобы у себя, локальнинко, никому не показывая свой код (стыдно же...) сидеть и изучать git и как с ним работать да ещё и администрировать, да ещё и CI/CD прикрутить к своим проектам.

 

успехов.

Спасибо огромное за информацию, буду все изучать и тренироваться.


  • 0


Программирование на С# для тестировщиков
онлайн, начало 28 сентября
Автоматизатор мобильных приложений
онлайн, начало 3 октября
Selenium WebDriver: полное руководство
онлайн, начало 19 октября
Программирование на Python для тестировщиков
онлайн, начало 26 октября




Темы с аналогичным тегами ссылка, селениум

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале