2015-04-18 3 views
1

Не может войти в страницу поиска Google, как получить исключение org.openqa.selenium.ElementNotVisibleException в поиске Googleorg.openqa.selenium.ElementNotVisibleException в поиске Google

используя код ниже:

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import java.util.List; 

public class GoogleTest { 
    public static void main(String[] args) { 

     // TODO Auto-generated method stub 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("google.co.in/"); 
     driver.manage().window().maximize(); driver.findElement(By.xpath("//*[@id='sb_ifc0']")).sendKeys("selenium"); 
     driver.findElement(By.xpath("//*[@id='sblsbb']/button")).click(); 
     List<WebElement> allLinks = driver.findElements(By.tagName("a")); 
     System.out.println(allLinks.size()); 

     for(int i=0;i<allLinks.size();i++) 
     { 
      System.out.println(allLinks.get(i).getText()+"----"+allLinks.get(i).isDisplayed()); 
     } 
    } 
} 

ответ

0

Ниже приведен 3 проблем :

) селектор для окна поиска является элементом DIV, а не собственно текстовое поле ввода или тега, следовательно, исключение org.openqa.selenium.ElementNotVisibleException

, как вы хотите, чтобы ввести текст, следовательно, используйте следующий селектор

//*[@id = 'sb_ifc0']//input[@id = 'lst-ib'] 

) Другое дело, вы не используете ожидания, неявное ожидание может спасти вас день здесь.

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

) Как вы получаете список элементов с помощью анкерного тега перед циклом через них ссылку на элемент списка будет несвежим, следовательно, вы можете обновить ссылки элемента, получая новую ссылку каждый раз, когда в петля.

for(int i=0; i<allLinks.size(); i++) 
    { 
     List<WebElement> allLink = driver.findElements(By.tagName("a")); 
     System.out.println(allLink.get(i).getText()+"----"+allLink.get(i).isDisplayed()); 
    } 

Следующая рабочей версии проблемного кода Код:

/** 
    * Created by anirudh on 18/4/15. 
    */ 
    import org.openqa.selenium.By; 
    import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.WebElement; 
    import org.openqa.selenium.firefox.FirefoxDriver; 
    import java.util.List; 
    import java.util.concurrent.TimeUnit; 

    public class GoogleTest { 
     public static void main(String[] args) { 

      // TODO Auto-generated method stub 
      WebDriver driver = new FirefoxDriver(); 
      driver.manage().window().maximize(); 
      driver.get("https://www.google.co.in/"); 
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
      driver.findElement(By.xpath("//*[@id = 'sb_ifc0']//input[@id = 'lst-ib']")).sendKeys("selenium"); 
      driver.findElement(By.xpath("//*[@id = 'sblsbb']/button")).click(); 
      List<WebElement> allLinks = driver.findElements(By.tagName("a")); 
      System.out.println(allLinks.size()); 

      for(int i = 0; i<allLinks.size(); i++) 
      { 
       List<WebElement> allLink = driver.findElements(By.tagName("a")); 
       System.out.println(allLink.get(i).getText()+"----"+allLink.get(i).isDisplayed()); 
      } 
      driver.quit(); 
     } 
    } 
0

Просто дать правильную ссылку, в driver.get()

driver.get("https://www.google.co.in/"); 
0
Just try below code for searching in google 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import java.util.List; 

public class Googlesearch { 
    public static void main(String[] args) { 

     // TODO Auto-generated method stub 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("https://www.google.co.in/"); 
     driver.manage().window().maximize(); 
     driver.findElement(By.name("q")).sendKeys("selenium"); 
     driver.findElement(By.xpath("//*[@id='sblsbb']/button")).click(); 
     List<WebElement> elements = driver.findElements(By.tagName("a")); 
     System.out.println(elements.size()); 
    } 
} 
Смежные вопросы