2016-04-06 6 views
0

-I-Tests bin „http://www.khuranatravel.com/Firefox Erste Ausnahme Element an dem Punkt nicht anklickbar ist (461,5, 65) versucht, alle Lösungen

Das Szenario, das ich über das Datum Palette schweben, ein Datum auswählen und auf Suche Busse klicken . Aber ich bin immer oben genannte Ausnahme

Ich habe versucht, folgende Lösungen

  1. expliziter wait (presenceOfElement, visibilityOf, visibilityOfElementLocatedBy)
  2. Javascript Testamentsvollstrecker - js.executeScript ("Argumente [0] .click();" , Webelement);
  3. Javascript-Executor - js.executeScript ("window.scrollTo (0," + webelement.getLocation(). X + ")");
  4. js.executeScript ("Argumente [0] .scrollIntoView (true);", webelement);
  5. mit Actions- moveToElement Versuchte

    WebDriverWait wait=new WebDriverWait(driver, 50); 
    Actions builder=new Actions(driver); 
    JavascriptExecutor js= (JavascriptExecutor)driver; 
    builder.moveToElement(we2).perform(); 
    wait.until(ExpectedConditions.visibilityOf(we2)); 
    builder.moveToElement(we2).click(); 
    
  6. ich auch mit Maximierung der Fenster, aber nichts versucht haben, scheint

Bitte geben Lösung für dieses

Antwort

0

hilft ich diese Arbeit nach vielen Tests erhalten haben

public static void selectDate(){ 
     WebDriverWait wait=new WebDriverWait(driver, 50); 
//  WebElement we=driver.findElement(By.xpath("//td[contains(@class, 'ui-datepicker') and @data-handler='selectDay']/a[contains(.,'10')]")); 
     Actions builder=new Actions(driver); 
     driver.findElement(By.id("departDate")).click(); 
     wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//td[contains(@class, ' ui-datepicker')]/child::a[contains(@class,'ui-state')][contains(text(), '10')]"))); 
     builder.moveToElement(driver.findElement(By.xpath("//td[contains(@class, ' ui-datepicker')]/child::a[contains(@class,'ui-state')][contains(text(), '10')]"))).click().perform(); 
     boolean result = false; 
     int attempts = 0; 
     while(attempts < 10) { 
      try { 
       driver.findElement(By.xpath("//td[contains(@class, ' ui-datepicker')]/child::a[contains(@class,'ui-state')][contains(text(), '10')]")).click(); 
       result = true; 
       break; 
      } catch(StaleElementReferenceException e) { 
      } 
      attempts++; 
     } 

Ich habe die StaleElementReferenceException nach dem Schweben erhalten. Also schrieb extra Code, um die Ausnahme zu behandeln und klickte, bis das Element aktualisiert wurde.

ich gedebuggt durch WebDriverException und StaleElementReferenceException dieses

0

Hallo Element zu arbeiten, nicht ist klickbar bei Punkt (461.5, 65) Dies passiert, wenn das Element in das DOM geladen wird, die Position jedoch nicht auf der Benutzeroberfläche festgelegt ist. Es kann einige andere divs oder Bilder oder Anzeigen geben, die nicht vollständig geladen sind. unten finden Sie die Lösung

public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     /*System.setProperty("webdriver.chrome.driver","D:\\eclipseProject\\StackOverFlow\\chromedriver_win32 (1)\\chromedriver.exe"); 
     WebDriver driver = new ChromeDriver();*/ 

     WebDriver driver = new FirefoxDriver(); 
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
     driver.manage().window().maximize(); 
     driver.get("http://www.khuranatravel.com/"); 

// error reported by you (i never got error at this point) 
// Getting exception Element is not clickable at point (461.5, 65) 
// instead of clicking depart date i will perform some 
// extra step to give element time to take fixed position inside the DOM 

List<WebElement> mymenu = driver.findElements(By.xpath("//*[@class='left']/a")); 
     for(int i=0;i<mymenu.size();i++){System.out.println(mymenu.get(i).getText());}; 

// clcik on depart date now 
driver.findElement(By.id("departDate")).click(); 

     // take journey date in list 
     List<WebElement> mydate = driver.findElements(By.xpath("//*[@data-month='3']/a")); 
     // pass the date on which you want to travel 
     String journeydate = "10"; 
     for(int i=0;i<mydate.size();i++){ 
      System.out.println("values are in date : " + mydate.get(i).getText()); 
      if(mydate.get(i).getText().equals(journeydate)){ 
       mydate.get(i).click(); 
       break; 
      } 

     } 
     // click to activate the return date calendar 
     // and here the error reported by you comes 
     // Getting exception Element is not clickable at point (461.5, 65) 
     // as you have mentioned that you have tried everything so i will do a work around 
     // instead of clicking return date just after journey date i will perform some 
     // extra step to give element time to take fixed position inside the DOM 

     List<WebElement> mymenu = driver.findElements(By.xpath("//*[@class='left']/a")); 
     for(int i=0;i<mymenu.size();i++){System.out.println(mymenu.get(i).getText());}; 

     // now click to activate the return date calendar 
     driver.findElements(By.xpath("//*[@type='text']")).get(1).click(); 


     // pass the date on which you want to travel 
     String returnOn = "20"; 
     mydate = driver.findElements(By.xpath("//*[@data-month='3']/a")); 
     for(int i=0;i<mydate.size();i++){ 
      System.out.println("values are in date : " + mydate.get(i).getText()); 
      if(mydate.get(i).getText().equals(returnOn)){ 
       mydate.get(i).click(); 
      } 
     } 
     // click on the search button 
     driver.findElement(By.id("submitSearch")).click(); 

    } 

ich aktualisieren die Antwort oben auf Chrome arbeitet sowie firefox hoffen, dass diese Sie

+0

Die Ausnahme bei depart Zeitpunkt kommt zu erreichen. –

+0

ich bekomme nie eine ausnahme am abreisedatum sowieso bitte wenden sie die gleiche logik an (was ich am rückgabedatum beantragt habe) wird es sicherlich helfen. –

+0

Ich bekomme immer noch den gleichen Fehler, sogar mit Ihrem Code. Irgendeine andere Lösung? –

Verwandte Themen