2016-09-08 7 views
1

импорт org.openqa.selenium.By; import org.openqa.selenium.firefox.FirefoxDriver;Я пытаюсь проверить новую функцию «yatra.com» по selenium, но не получить код, как нажать на книжный билет?

общественного класса ятра { государственной статической силы основных (String [] арг) {

FirefoxDriver driver= new FirefoxDriver(); 
driver.get("http://www.yatra.com"); 
driver.findElement(By.className("iconBeta")).click(); 
driver.findElement(By.xpath(".//input[contains(@id,'nlp_query')]")).sendKeys("go air evening flight from Mumbai to Chennai coming Sunday"); 
driver.findElement(By.xpath(".//input[contains(@id,'nlp_submit')]")).click(); 
driver.findElement(By.className("new-blue-button fr book-button js-bookNow")).click(); 

}}

+0

Пожалуйста, поделитесь полученной ошибкой. –

ответ

1

имя класса new-blue-button fr book-button js-bookNow вы используете для Book Now это станет доступным только после нажатия кнопки или зависать на этой кнопке. Следовательно, Селен не может идентифицировать локатор.

Вместо этого напишите некоторый относительный xpath, как показано ниже. Он должен работать. Это один для первой кнопки, для второго третьего и т.д., изменить порядковый номер первого элемента DIV (div[7], div[8] с быть на втором, div[9] с быть на 3-й и т.д.)

//div[7]/article/div[1]/ul/li[5]/div/p[2] 
+0

привет, спасибо за ответ. Я очень новичок в мире automachine. – Anand

+0

"driver.findElement (By.xpath (" .//*[@ id = 'BOMMAAG8303G820160911']/div [1]/ul/li [5]/DIV/р [2] ")) нажмите();". Я добавил эту строку, взяв xpath из нее, но все еще сталкиваясь с такой же ошибкой, могу ли я объяснить мне свою ошибку и помочь мне, как войти в книгу сейчас? – Anand

0

Ниже работал для меня, вписатьтся проверка & revert

driver.get("http://www.yatra.com"); 
driver.findElement(By.className("iconBeta")).click(); 
driver.findElement(By.xpath(".//input[contains(@id,'nlp_query')]")).sendKeys("go air evening flight from Mumbai to Chennai coming Sunday"); 
     driver.findElement(By.xpath(".//input[contains(@id,'nlp_submit')]")).click(); 
    try 
    { 
     Thread.sleep(5000); 
    } 
    catch (InterruptedException e) 
    { 
     e.printStackTrace(); 
    } 

    WebElement we = driver.findElement(By.xpath("(//div[@class='js-flightRow js-flightItem ng-scope']//div[@class='my-res-info full']//span[contains(text(),'Book Now')])[last()]")); 

    JavascriptExecutor js = (JavascriptExecutor) driver; 
    js.executeScript("arguments[0].click()", we);