Как напечатать текст рядом с Selenium? - PullRequest
1 голос
/ 16 апреля 2019

Я должен напечатать название отеля и цену рядом

пример: oyo Rooms - 2000rs

Я пытался использовать веб-драйвер Selenium.

WebDriver driver = new ChromeDriver();
        String baseUrl = "https:www.teletextholidays.co.uk";
        driver.get(baseUrl);
        driver.manage().window().maximize();

          WebElement all_Inclusive = driver.findElement(By.xpath("//*[@class='header pstn-fxd edge txt-center fixed-nav-container']//div[@class='show-on-desktop inblock']//a[@class='top-nav-allinclusive nav-item txt-white inblock hover-out allinclusivelink']")); 
          all_Inclusive.click(); WebElement all_hotels =driver.findElement(By.xpath("//*[@class='lg-flex-box']"));
          JavascriptExecutor js = (JavascriptExecutor) driver;
          js.executeScript("arguments[0].scrollIntoView();", all_hotels);
          List<WebElement> hotellist = driver.findElements(By.xpath("//*[@class='deal-price pstn-reltv grid-stay items-center space-between']//span[@class='dstn-name txt-bold']")); 
          System.out.println(hotellist.get);
          List<WebElement> pricelist = driver.findElements(By.xpath("//*[@class='deal-price pstn-reltv grid-stay items-center space-between']//span[@class='tth-price font-bold txt-sunset']" ));
          /*for (WebElement hotel : hotellist) {
              System.out.println(hotel.getText());
          }*/
          for (WebElement price : pricelist) {
              System.out.println(price.getText());  
              if(price.getText().contains("157")) {
                  System.out.println(hotel);
              }
          }

Ожидаемый результат: Ойо - 1000, альфа - 2345 .

Что я делаю неправильно?

1 Ответ

0 голосов
/ 16 апреля 2019

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

Попробуйте следующий код, чтобы напечатать отель - формат цены.

List<WebElement> listOfLinks = driver.findElements(By.cssSelector("a>div.deal-price"));

for(WebElement link: listOfLinks) {
    System.out.print(link.findElement(By.cssSelector(".from-price>.dstn-name")).getText());
    System.out.print(" - ");
    System.out.println(link.findElement(By.cssSelector(".txt-right .tth-price")).getText());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...