2016-12-03 2 views
0

Я пытаюсь автоматизировать одно веб-приложение авиакомпании с помощью Selenium WebDriver, Java, Junit и с Buc Duc. Я смог создать простой сценарий, например, выбрать односторонний рейс с датой вылета, а затем выбрать место, а затем перейти на страницу оплаты. Я смог написать все этапы тестирования до достижения страницы оплаты. Selenium успешно выполнил действия для всех элементов на всей странице, но не смог выполнить действия для любых элементов на странице оплаты. Я попробовал неявное ожидание и явное ожидание, но не использовал. Первоначально, когда я запускал тест, как только Selenium смог выполнить действия на странице «Оплата», и когда я попытался запустить его снова несколько раз, но тест завершился неудачно из-за «NoSuchElementException». Некоторые из элементов, чтобы найти на странице оплаты ниже:Selenium WebDriver не может найти элементы на странице

Select choice = new Select(driver.findElement(By.xpath("//select[contains(@id,'title')]"))); 
choice.selectByVisibleText("Mr"); 
driver.findElement(By.xpath("//div[contains(@class,'payment-passenger-first-name')]"))/input)).sendKeys("John"); 

implicitwait я использовал это:

driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS); 

explicitWait я использовал:

WebElement element = new WebDriverWait(driver,20).until(ExpectedConditions.presenceOfElementLocated(By.xpath("elementlocation"))); 

Селен не находит любые элементы на странице «Оплата» не только выше. Я не знаю, в чем проблема. Может ли кто-нибудь предоставить мне лучшее решение для решения этой проблемы?

+0

Если это страница оплаты, элементы, которые вы ищете, могут быть в IFRAME из-за безопасности. Вы проверили IFRAME? – JeffC

+0

Нет. Я проверил всю страницу оплаты, все элементы не включены в IFRAME. – sravan

+0

Пожалуйста, прочитайте [ask]. Укажите код, который вы пробовали, и результат выполнения, включая сообщения об ошибках, и т. Д. Также укажите ссылку на страницу и/или соответствующий HTML-код. – JeffC

ответ

1

Если элементы написаны внутри тега iframe, то селен не найдет элементы до тех пор, пока вы не переключитесь в кадр первым. Команда для переключения рамки (driver.switchto(). Frame (Framename))

+0

элементы не включены в IFRAME – sravan