Java org.openqa.selenium.InvalidElementStateException:用于谷歌搜索
我试图在谷歌搜索中输入手机,但在搜索中发送手机时,下面的代码失败。我使用了下面的xpath。请查看邮件末尾的错误 我甚至尝试了其他XPath,如下所示: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
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;
}
}