2016-07-18 67 views
1

我用提交按鈕很難,它在Selenium中運行時沒有在phantomJS中點擊相同的代碼。 有沒有人有任何建議(在Java中)?PhantomJS提交按鈕沒有被點擊 - 在Selenium中工作

公共類的bookFlight

{ webdriver的驅動程序; File file = new File(「C:/ Program Files/phantomjs-2.1.1-windows/bin/phantomjs.exe」); ()「);我們可以通過調用這個函數來調用這個函數,這個函數的作用就是調用這個函數來調用這個函數,這個函數的作用就是調用這個函數來調用這個函數。

 //*************************************************** 
     // FIREFOX UI DEBUG - Set debug to True for UI debug 
     boolean debug=false; 
     if (debug) 
      { 
      driver= new FirefoxDriver(); 
      driver.manage().window().maximize(); 
      } 
     else 
     { 
      driver=new PhantomJSDriver(); 
     //Set logging to Severe   Logger.getLogger(PhantomJSDriverService.class.getName()).setLevel(Level.SEVERE); 
     } 

     //*************************************************** 
     //Submit Home page and get the title 
     driver.get("http://www.aa.com"); 
     String pageTitle = driver.getTitle(); 
     System.out.println("The Current page title is "+pageTitle); 

     //Find the origin airport field 
     WebElement originAirport=driver.findElement(By.id("reservationFlightSearchForm.originAirport")); 
     //Clear any existing text and enter the origin airport 
     originAirport.clear(); 
     originAirport.sendKeys("PHX"); 

     //Find the destination airport field 
     WebElement destAirport=driver.findElement(By.id("reservationFlightSearchForm.destinationAirport")); 

     destAirport.clear(); 
     destAirport.sendKeys("LAS"); 

     //Find the depart date field 
     WebElement depDate = driver.findElement(By.id("aa-leavingOn")); 
     depDate.clear(); 
     depDate.sendKeys("08/20/2016"); 

     //Find the return date field 
     WebElement retDate = driver.findElement(By.id("aa-returningFrom")); 
     retDate.clear(); 
     retDate.sendKeys("08/24/2016"); 

     //Find the Search up button 
     // WebElement searchButton = driver.findElement(By.id("flightSearchForm.button.reSubmit")); 
     // driver.findElement(By.id("flightSearchForm.button.reSubmit")).click(); 
     // WebElement searchButton = driver.findElement(By.xpath("//*[@value='Search'][@type='submit']")); 

     //phantomjs debug - Verify the button has been found 
     boolean buttonText = driver.findElement(By.xpath("//*[@value='Search'][@type='submit']")).isDisplayed(); 
     System.out.println("buttonText Boolean is = "+buttonText); 

     //Click the Search button   
     //driver.findElement(By.xpath("//*[@value='Search'][@type='submit']")).sendKeys(Keys.RETURN); 

       //*********** This works in Selenium *********** 
     driver.findElement(By.xpath("//*[@value='Search'][@type='submit']")).click(); 
     // Wait for the Choose Flights page to appear 
     int count = 1; 
     do 
      if (driver.getTitle().contains("Choose flights")) 
      { 
       break; 
      } 
      else 
      { 
      System.out.println("do loop iteration "+count+ " the title = "+ driver.getTitle()); 
      Thread.sleep(1000); 
        count++; 
      } 
     while (count < 30);    
     System.out.println("After search the current page title is = "+ driver.getTitle()); 
     Assert.assertTrue(driver.getTitle().contains("Choose flights")); 
     driver.quit(); 
    } 

回答

0

當通過Jmeter使用phantomjs(與WebDriver Sampler)時,我遇到類似的問題。

我能看到的是一個模式存在於頁面上,覆蓋了我需要與之交互的字段。我可以添加斷言來驗證字段和按鈕的存在並捕獲它們的值,只是不能點擊按鈕。

我能想到的唯一解決方法是調用函數(按鈕onclick函數),雖然不是我的偏好。