Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.openqa.selenium.InvalidElementStateException:用于谷歌搜索_Java_Xpath_Selenium Webdriver - Fatal编程技术网

Java org.openqa.selenium.InvalidElementStateException:用于谷歌搜索

Java org.openqa.selenium.InvalidElementStateException:用于谷歌搜索,java,xpath,selenium-webdriver,Java,Xpath,Selenium Webdriver,我试图在谷歌搜索中输入手机,但在搜索中发送手机时,下面的代码失败。我使用了下面的xpath。请查看邮件末尾的错误 我甚至尝试了其他XPath,如下所示: html/body/div[1]/div[3]/div[1]/div[1]/div[3]/div/div/div/form/fieldset[2]/div/div/div/table/tbody/tr/td[2]/div/input[3] //div[@id='gs_lc0']/input[@id='gs_htif0'] public c

我试图在谷歌搜索中输入手机,但在搜索中发送手机时,下面的代码失败。我使用了下面的xpath。请查看邮件末尾的错误

我甚至尝试了其他XPath,如下所示:

html/body/div[1]/div[3]/div[1]/div[1]/div[3]/div/div/div/form/fieldset[2]/div/div/div/table/tbody/tr/td[2]/div/input[3]

//div[@id='gs_lc0']/input[@id='gs_htif0']


public class exercise1 {

    @Test
    public void googleExercise() throws InterruptedException    {
        WebDriver driver = new FirefoxDriver();
        driver.manage().window().maximize();
        driver.get("http://google.com");
        Thread.sleep(10000);
        driver.findElement(By.xpath("//*[@id='gs_tti0']")).sendKeys("Mobile Phones");
        driver.findElement(By.xpath("//*[@id='gbqfba']']")).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("Link " + i + " = " + alllinks.get(i).getText() + " = " + alllinks.get(i).isDisplayed());
        }
    }
}
html/body/div[1]/div[3]/div[1]/div[1]/div[3]/div/div/div/form/fieldset[2]/div/div/div/div/table/tbody/tr/td[2]/div/input[3]
//div[@id='gs\u lc0']/input[@id='gs\u htif0']
公开课练习1{
@试验
public void googleExercise()抛出InterruptedException{
WebDriver=newfirefoxdriver();
driver.manage().window().maximize();
驱动程序。获取(“http://google.com");
睡眠(10000);
driver.findElement(By.xpath(“/*[@id='gs_tti0'])).sendKeys(“手机”);
driver.findElement(By.xpath(“/*[@id='gbqfba']']))。单击();
列出所有链接=driver.findElements(按.tagName(“a”));
System.out.println(alllinks.size());

对于(int i=0;i参见,如果这有帮助

@Test
public void googleExercise() throws InterruptedException {

WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://google.com");
Thread.sleep(10000);
driver.findElement(By.name("q")).sendKeys("Mobile Phones");
Thread.sleep(5000);
WebElement findElementsClass = firefoxDriver.findElement(By.className("gssb_m"));
List<WebElement> alllinks = findElementsClass.findElements(By.tagName("span"));
System.out.println(alllinks.size());
for (int i=0;i<alllinks.size();i++) {
    System.out.println("Link " + i + " = " + alllinks.get(i).getText() + " = " + alllinks.get(i).isDisplayed());
}
}
@测试
public void googleExercise()抛出InterruptedException{
WebDriver=newfirefoxdriver();
driver.manage().window().maximize();
驱动程序。获取(“http://google.com");
睡眠(10000);
驱动程序.findElement(按名称(“q”)).sendKeys(“手机”);
睡眠(5000);
WebElement findElementsClass=firefoxDriver.findElement(By.className(“gssb_m”);
列出所有链接=findElementsClass.findElements(按.tagName(“span”));
System.out.println(alllinks.size());

对于(inti=0;i使用Google进行测试非常糟糕,我尝试了不同的方法,使用id、xpath等将一些搜索文本发送到Google搜索文本框。 每次禁用元素和测试失败时。 最后将查找机制更改为 driver.findElement(By.name(“q”)).sendKeys(“一些文本”);
这很管用,谢谢。

在谷歌网站上测试时要小心一点。但参考上面的代码肯定会有所帮助
enter code heredriver.get("http://google.com");
    Thread.sleep(4000);
    driver.findElement(By.name("q")).sendKeys("selenium");
    driver.findElement(By.name("btnG")).click();

    Thread.sleep(4000);

    String p1 = "//*[@id='rso']/div[2]/li[" ;
    String p2 = "]/div/h3/a";

    int i = 1;
    while(checkElementPresent(p1+i+p2))
    {
        String x = driver.findElement(By.xpath(p1+i+p2)).getText();
        System.out.println(x);

        i++;
    }

}

public static boolean checkElementPresent(String path)
{
    int count = driver.findElements(By.xpath(path)).size();

    if(count == 0)
    {
        return false;

    }

    else
    {
        return true;
    }

}
enter code heredriver.get("http://google.com");
    Thread.sleep(4000);
    driver.findElement(By.name("q")).sendKeys("selenium");
    driver.findElement(By.name("btnG")).click();

    Thread.sleep(4000);

    String p1 = "//*[@id='rso']/div[2]/li[" ;
    String p2 = "]/div/h3/a";

    int i = 1;
    while(checkElementPresent(p1+i+p2))
    {
        String x = driver.findElement(By.xpath(p1+i+p2)).getText();
        System.out.println(x);

        i++;
    }

}

public static boolean checkElementPresent(String path)
{
    int count = driver.findElements(By.xpath(path)).size();

    if(count == 0)
    {
        return false;

    }

    else
    {
        return true;
    }

}