Почему сайт тестирования Selenium не работает более чем на одной странице? - PullRequest
0 голосов
/ 30 апреля 2018

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

Первая часть - это страница входа в систему, а вторая часть - домашняя страница.

package Test;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
//import org.openqa.selenium.chrome.ChromeDriver;

public class test {

  public static void main(String[] args) throws InterruptedException {

    WebDriver driver;

    System.setProperty("webdriver.gecko.driver",
                        "E:\\Quality\\drivers\\geckodriver.exe");

    driver =new FirefoxDriver();

    driver.get("https://www.linkedin.com/uas/login");
        // first part//
    driver.findElement(By.xpath("//*[@id=\"session_key-login\"]")).click(); 

    driver.findElement(By.xpath("//[@id=\"session_keylogin\"]")).sendKeys("Email");

    driver.findElement(By.xpath("//*[@id=\"session_password-login\"]")).click();
    driver.findElement(By.xpath("//*[@id=\"session_password-login\"]")).sendKeys("*******");

    driver.findElement(By.xpath("//*[@id=\"btn-primary\"]")).click();
    // second part//
    WebElement test = null ;
    test.findElement(By.xpath("/html/body/div[5]/div[5]/aside/div/header")).click();

  }
}  

1 Ответ

0 голосов
/ 30 апреля 2018

Вы указали неправильный идентификатор для xpath текстового поля электронной почты.

Вы должны использовать session_key-login вместо session_keylogin.

Просто используйте приведенный ниже пересмотренный код, где вы используете sendKeys() метод:

driver.findElement(By.xpath("//*[@id=\"session_key-login\"]")).sendKeys("Email");

2-я часть Решение

Пропустить объявление WebElement, поэтому прокомментируйте строку //WebElement test = null;

Используйте строку, используя driver object

driver.findElement(By.xpath("/html/body/div[5]/div[5]/aside/div/header")).click();

Вы также можете использовать xpath //*[@id=\"msg-overlay\"]/div/header
Таким образом, для пересмотренного кода это:

driver.findElement(By.xpath("//*[@id=\"msg-overlay\"]/div/header")).click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...