как отобразить поле класса span - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь отобразить два "текстовых текста" из html в chrome браузере на моей консоли печати, по-видимому, это не сработало, какой-либо совет, пожалуйста?

мой браузер html код

  <a href="/abc/123" class="active">
    <div class="sidebar-text"> 
     <span class="text text-pass"> </span> </a>
  <a href="/abc/1234" class="active">
        <div class="sidebar-text">
         <span class="text text-pass"> </span> </a>

мой код

    String 123= driver.findElement(By.xpath("//*[@id="js-app"]/div/div/div[2]/div[1]/div/div/ul/li[5]/a")).getText();
    System.out.println(123);

String 1234= driver.findElement(By.xpath("//*[@id="js-app"]/div/div/div[2]/div[1]/div/div/ul/li[5]/a")).getText();
    System.out.println(1234);

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Вы можете использовать .findElements, чтобы получить несколько элементов с одинаковым шаблоном, он вернет коллекцию списков.

ОБНОВЛЕНИЕ

Ссылаясь на ваш комментарий, вы нужно снова поместить строку в список и проверить с помощью метода Collection.contains () :

List<String> results = new ArrayList<>();
List<WebElement> elements = driver.findElements(By.xpath("//div[@class='sidebar-text']//span"));
for(WebElement element: elements) {
    String attr = element.getAttribute("class");
    results.add(attr);
    System.out.println(attr);
}

if(results.contains("text text-fail")) {
    System.out.println("this is list contains 'text text-fail'");
}
0 голосов
/ 19 апреля 2020

Попробуйте этот код:

String pass = driver.findElement(By.xpath("//*[@class='sidebar-text']/span")).getAttribute("class");
System.out.println(pass);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...