Java Selenium-ссылка отсутствует поле предупреждение об ошибке в поле - PullRequest
2 голосов
/ 13 мая 2019

Если вы заходите на сайт https://www.cleartrip.com и, не заполняя поля, нажмите кнопку «Поиск рейса», вы получите ошибку.Я могу зафиксировать ошибку, используя:

//small[contains(text(),'You missed this')]  

Однако я не уверен, как связать это с фактическим полем.Могу ли я сделать что-то подобное //input[@id='From']/child::small?

1 Ответ

0 голосов
/ 13 мая 2019

Чтобы получить поля, отображающие ошибку как Вы пропустили это на cleartrip.com , вам нужно вызвать WebDriverWait для visibilityOfAllElementsLocatedBy(), а затем создать Список с использованием Java stream() и map() следующим образом:

  • Кодовый блок:

    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    public class clearTrip_warning {
    
        public static void main(String[] args) {
    
        System.setProperty("webdriver.chrome.driver", "C:\\SeleniumUtilities\\BrowserDrivers\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("start-maximized");
        options.addArguments("--disable-extensions");
        options.addArguments("disable-infobars");
        WebDriver driver = new ChromeDriver(options);
        driver.get("https://www.cleartrip.com/");
        new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#SearchBtn"))).click();
        List<String> myFields = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//small[contains(text(),'You missed this')]//preceding::input[2]"))).stream().map(element->element.getAttribute("id")).collect(Collectors.toList());
        System.out.println(myFields);
        }
    }
    
  • Выход на консоль:

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