2016-12-03 105 views
0

我试图用Selenium WebDriver,Java,Junit和Cucumber BDD自动化一个航空公司的Web应用程序。我能够创建一个简单的场景,例如选择带出发日期的单程航班,然后选择座位,然后进入付款页面。我能够编写所有测试步骤直到到达付款页面。 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

请阅读[问]。请提供您尝试过的代码以及执行结果,包括任何错误消息等。还请提供指向页面和/或相关HTML的链接。 – JeffC

回答

1

如果元素被写入iframe标签内,那么硒元素将不会找到元素,直到您先切换为帧。 切换帧(driver.switchto().frame(Framename))的命令

+0

元素不包含在IFRAME中 – sravan

相关问题