Mustang92
Mustang92

Reputation: 21

Phantom JS is unable to find element (even after giving implicit wait aslo)

I am facing some problem with PhantomJS reg locating the webelements. I have gone through previously answered questions in which 2 possible solutions was given:

  1. Sync Issue-give Implicit wait
  2. Css selector don't work in phantomjs.

I have tried both the solution but my code is still not working. Code:

public class Headless_phantomJS {

  @Test
  public void googlesearch() throws InterruptedException
  {
      File path=new File("C:/Third party softwares/phantomJS/phantomjs-2.1.1-windows/phantomjs-2.1.1-windows/bin/phantomjs.exe");
      System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
      WebDriver driver= new PhantomJSDriver();
      driver.manage().window().maximize();
      driver.navigate().to("https://www.google.co.in/");
      System.out.println("inside Test");
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      driver.findElement(By.xpath("//input[@id='lst-ib']")).isEnabled();
      driver.findElement(By.xpath("//input[@id='lst-ib']")).sendKeys("lol");
      driver.findElement(By.xpath(".//*[@id='tsf']/div[2]/div[3]/center/input[1]")).click();
    }     
  }

Upvotes: 2

Views: 2127

Answers (1)

undetected Selenium
undetected Selenium

Reputation: 193088

Here is your own code block which executes well with PhantomJS 2.1.1 with some tweaks and some added Sysouts for your convenience:

@Test
public void googlesearch()
{
     File path=new File("C:\\Utility\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
     System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
     WebDriver driver= new PhantomJSDriver();
     driver.manage().window().maximize();
     driver.navigate().to("https://www.google.co.in/");
     System.out.println("inside Test");
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
     System.out.println("Checking if the Search field is Enabled");
     driver.findElement(By.name("q")).isEnabled();
     System.out.println("Sending lol to Search field");
     driver.findElement(By.name("q")).sendKeys("lol");
     System.out.println("Clicking on Google Search button Next");
     driver.findElement(By.name("btnG")).click();
     System.out.println("Google Search Completed");
}

Upvotes: 1

Related Questions