我试图用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")));
硒没有找到“付款”页面上的任何元素不仅仅是上面的元素。我不清楚问题是什么。 有人可以提供我最好的解决方案来解决这个问题吗?
如果是付款页面,由于安全原因,要查找的元素可能位于IFRAME中。你检查过IFRAME吗? – JeffC
不,我检查了整个付款页面,所有的元素都不包含在IFRAME中。 – sravan
请阅读[问]。请提供您尝试过的代码以及执行结果,包括任何错误消息等。还请提供指向页面和/或相关HTML的链接。 – JeffC