Как я могу проверить, что URL-адрес правильный - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь щелкнуть ссылку и убедиться, что открывающаяся ссылка верна. Когда я запускаю тест, после нажатия на ссылку, он открывается в новой вкладке. Новая вкладка находится в фокусе, но сравнение все еще находится на предыдущей вкладке. Кто-то?

Это мой код:

HomePage homepage = PageFactory.initElements(driver, HomePage.class);
homepage.openHomePage();
homepage.openSignUpPage();
SignUpPage signUpPage = PageFactory.initElements(driver, SignUpPage.class);
signUpPage.checkTermsOfServiceURL();
driver.findElement(link_terms_of_services).click();    wait.until(ExpectedConditions.urlToBe("https://www.atlassian.com/legal/cloud-terms-of-service"));

Это результат:

в ожидании URL "https://www.atlassian.com/legal/cloud-terms-of-service". Текущий URL:" https://trello.com/signup"

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

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

String MainWindow=driver.getWindowHandle();

Set<String> s1=driver.getWindowHandles();       
Iterator<String> i1=s1.iterator();              
        while(i1.hasNext())         
        {       
            String ChildWindow=i1.next();       

            if(!MainWindow.equalsIgnoreCase(ChildWindow))           
            {           

                    // Switching to Child window
                    driver.switchTo().window(ChildWindow);
                  // do your stuff
            }

Вы можете переключиться обратно в родительское окно:

            driver.switchTo().window(MainWindow);
0 голосов
/ 19 мая 2019

Вам нужно переключить драйвер на новую вкладку, например, так:

const windowHandles = await driver.getAllWindowHandles();
await driver.switchTo().window(windowHandles[1]);

Затем вы можете подождать URL на этой вкладке, например, так:

await driver.wait(async () => {
    const currentURL = await driver.getCurrentUrl();
    return currentURL === url;
}, timeout);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...