Не могу получить атрибуты от вложенных объектов - PullRequest
0 голосов
/ 31 января 2020

Я потратил много времени, пытаясь решить эту проблему, но я не могу найти рабочее решение, которое я провел несколько часов исследований ..

В настоящее время я использую селен. сама страница - angular, но это не должно быть проблемой в этом случае.

Я пытаюсь сохранить вложенные классы в списки, но не могу получить атрибуты, которые я пробовал, с помощью множества различных методов, таких как xPath, cssselector и inner HTML.

ниже - изображение всего объекта

enter image description here

Я думаю, что структура - это нечто вот так вверх и вниз:

<div _ngcontent-sc11="" class="Stock-busses"> 

<div _ngcontent-sc11="" class="Stock-bussesList ng-tns-c11-6 isCards ng-star-inserted" style="">

<mysite-truck _ngcontent-sc11="" class="Stock-truck ng-tns-c11-6 ng-trigger ng-trigger-listItem ng-
star-inserted" _nghost-sc17="" style="">

<a _ngcontent-sc17="" class="Truck ng-star-inserted" href="null" style=""> (HERE IS WHERE the object begins)

вот моя попытка:


@Test
public void Search_certain_truck() {

  List < WebElement > elements = driver.findElements(By.className("Stock-trucks"));
  java.util.Iterator < WebElement > program = elements.iterator();
  while (program.hasNext()) {
      String values = program.next().getText();

      if (!values.equals("null")) {

          List < WebElement > elem = driver.findElements(By.xpath("//div[@class='class=\"Stock-trucksList ng-tns-c11-6 isCards ng-star-inserted"));

          java.util.Iterator < WebElement > progz = elem.iterator();

          while (program.hasNext()) {
              String Truck_title = program.next().getText();

              if (!Truck_title.equals("null")) {
                  System.out.println(Truck_title);
              } else {

              }
          }

          //System.out.println(values); //THIS WORKS TO ALERT LINE 666

      } else {

      }
  }
}

Я могу предупредить строку 666 , хотя, когда я пытаюсь захватить вложенный вещи, которые я ничего не получаю

вот попытка 2:

 @Test
 public static void myatempt2() {
     List < String > TruckList = new ArrayList < String > ();
     List < String > TruckHref = new ArrayList < String > ();
     List < WebElement > x = driver.findElements(By.xpath("//div[@class='Stock-trucks']"));

     Loc.NavXPath(Our_Truck);
     Sa.WaitForBrowser(2000);

     // List<WebElement> x= driver.findElements(By.cssSelector("volvo-truck"));
     // List<WebElement> x= driver.findElements(By.className("volvo-truck"));
     driver.findElement(By.xpath("//div[@class='Stock-trucks ui-draggable ui-draggable-handle']")).getAttribute("href");
     for (WebElement webElement: x) {

         // TruckList.add(webElement.getText());
         //         TruckList.add(webElement.getAttribute("innerHTML"));
         System.out.println(webElement.getAttribute("innerHTML"));
         // System.out.println(webElement.getText());

     }

     for (int counter = 0; counter < TruckList.size(); counter++) {
         // System.out.println(TruckList.get(counter));
     }

     String FirstEl = TruckList.get(0);
 }

Я все еще не могу схватить вложенные объекты

вот ссылка на страницу: Pastebin

1 Ответ

0 голосов
/ 04 февраля 2020

Я решил, что мне все равно, как я храню различные вещи :)

@Test
public void Verify_a_Specific_Inquiry() throws Exception {


    // Loc.NavXPath(Our_Stock);

    List<String> TruckList = new ArrayList<String>();
    List<String> TruckListHref=new ArrayList<String>();
    List<WebElement> Truck_List_Element = driver.findElements(By.xpath("//div[@class='Stock-trucksList ng-tns-c11-6 isCards ng-star-inserted']"));

    for (WebElement x : Truck_List_Element) {

        // System.out.println(x.getText());

        // findElements(By.className("Truck ng-star-inserted"));

        // List<WebElement> in= driver.findElements(By.xpath("//body//volvo-truck[2]"));
        // //GET ONE TRUCK

        List<WebElement> in = driver.findElements(By.tagName("volvo-truck"));

        for (WebElement z : in) {

            // System.out.println(z.getText());

            TruckList.add(z.getText());

            //System.out.print(z.getClass("Truck ng-star-inserted").)

            TruckListHref.add(z.findElement(By.tagName("a")).getAttribute("href"));

            //System.out.print(z.findElement(By.tagName("a")).getAttribute("href"));

        }

    }

    String FirstTruck = TruckList.get(0);
    String FirstHref = TruckListHref.get(0);

    System.out.println(FirstTruck);
    System.out.println(FirstHref);

    driver.quit();

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...