URL-адрес selenium webdriver после входа в систему - PullRequest
0 голосов
/ 10 июля 2020

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

Я хочу получить текущий URL-адрес, поэтому проверьте и подтвердите, действительно ли я вошел в систему

    WebDriver driver = new ChromeDriver();
    driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
    driver.get("http://testingapp.workspez.com");
    driver.manage().window().maximize();

    WebElement username = driver.findElement(By.id("field_email"));
    WebElement password = driver.findElement(By.id("field_password"));
    WebElement login = driver.findElement(By.xpath("//*[text()='Log In']"));
    
    username.sendKeys("rahul@workspez.com");
    password.sendKeys("Sujeet@19");
    login.click();
    driver.manage().timeouts().implicitlyWait(120, TimeUnit.SECONDS);
    String url = driver.getCurrentUrl();
    System.out.println("url:"+driver.getTitle());
    System.out.println("url:"+driver.getCurrentUrl());

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Вы хотите подтвердить, что логин успешен или нет. Поэтому перед извлечением URL-адреса после входа в систему вам следует дождаться полной загрузки страницы. Вы можете написать и использовать ниже метод generi c для ожидания загрузки страницы, который можно использовать в дальнейших сценариях

    public void waitForPageLoad() {
        Wait<WebDriver> wait = new WebDriverWait(driver, 30);
        wait.until(new Function<WebDriver, Boolean>() {
            public Boolean apply(WebDriver driver){                    
                return String
                    .valueOf(((JavascriptExecutor) driver).executeScript("return document.readyState"))
                    .equals("complete");
            }
        });
    } 

Кроме того, вы дважды используете неявное ожидание в коде. Если вы реализуете implicitlyWait один раз, он станет применимым для всех шагов / действий, связанных с селеном. Пожалуйста, обратитесь к this SO thread, чтобы узнать о различиях между явным и неявным ожиданием

0 голосов
/ 10 июля 2020

ваш вывод подобен этому Вам следует дождаться URL-адреса главной страницы, потому что getcurrenturl получает URL-адрес при вводе имени пользователя и пароля (в это короткое время), поэтому вам следует дождаться URL-адреса панели управления

System.out.println("url:" + driver.getTitle());
    Thread.sleep(2000);
    System.out.println("url:" + driver.getCurrentUrl());
...