Как открыть новую вкладку или окно браузера и выполнить операции на этой недавно открытой странице с помощью Robot Framework? - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь сделать простой Robot-тест, чтобы продемонстрировать открытие нескольких вкладок или окон браузера с помощью Robot Framework.После того, как этот простой пример заработал, я мог бы использовать этот код для открытия многократных вкладок или окон в более длительных тестах.

Идея заключается в следующем: браузер открыт для www.google.com, а Text1 вводится в поисковой системе Google.бар.Затем откроется еще одна вкладка (или окно) для google.com на этом простом примере в качестве второй страницы, и вместо нее будет введен текст Text2.Открытие второго экземпляра страницы Google в настоящее время работает, но проблема в том, что Text2 вводится в строку поиска исходной страницы, а не во вновь открытую.Думаю, что и вкладка, и окно подойдут позже, но проблема сейчас в том, что ввод осуществляется на исходную страницу после того, как вторая страница была успешно открыта.Я думаю, что нужно как-то выбрать новое окно или вкладку, и я не уверен, является ли JavaScript правильным способом открыть второй, как я это сделал здесь?

Мой текущий код робота:

Library           Selenium2Library

*** Test Cases ***
multipletabstest
    Open Browser    http://www.google.com    Chrome
    Input Text      xpath://input[@name="q"]    Text
    Comment         Open second google-tab
    Execute Javascript    window.open('https://www.google.com');
    Input Text      xpath://input[@name="q"]    Text2

1 Ответ

0 голосов
/ 24 сентября 2019

Мне кажется, что я вчера на самом деле пытался вызвать Open browser, но почему-то не смог заставить его работать с таким поведением при вводе текста, как ожидалось.Теперь, когда я протестировал его снова (заменив строку JavaScript открытым браузером), это сработало, спасибо!Прежде чем войти сюда, я пришел с другим решением.Этот код длиннее, но я думаю, что в настоящее время я предпочитаю, как это открывает новые вкладки с Chrome (хотя код, например, window.open () относится к окнам) в верхней части браузера.С Firefox это, кажется, открывается как новые окна.И то, и другое полезно для меня, хотя основной идеей было бы открытие нескольких экземпляров одной и той же страницы, и я думаю, что может быть много решений.Это, вероятно, отчасти закомментировано, но комментарии здесь только для пояснения того, что делает это решение.Я нашел базу для этого на странице документации SeleniumLibrary.Для каждого окна использовались разные сайты, но я проверил это на нескольких страницах Google.

*** Settings ***
Library           Selenium2Library

*** Test Cases ***
multipletabstest
    Comment         Open first google window
    Open Browser    https://www.google.com      Chrome
    Input Text      xpath://input[@name="q"]    Text to first window
    Comment         Open second window
    Execute Javascript    window.open('https://www.google.com')
    Comment         Change to new window
    Switch Window   locator=NEW      
    Comment         Input text to second window
    Input Text      xpath://input[@name="q"]    Text to second window
    Comment         Open third window
    Execute Javascript    window.open('https://www.google.com')
    Comment         Change to new window
    Switch Window   locator=NEW
    Comment         Input text to third window
    Input Text      xpath://input[@name="q"]    Text to third window
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...