2016-12-03 104 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

相關問題