在这里,我尝试在印度输入cpa,然后在列表中收集带有广告的网址,然后单击不是来自Miles Education域的网址。但是我收到了StaleElementReferenceException。
请帮助我解决问题。 这是代码。
package com.MilesEducation.googleSearch;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
public class GoogleSearch
{
public static void main(String[] args) throws InterruptedException
{
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com/");
driver.manage().window().maximize();
WebElement searchbox = driver.findElement(By.xpath("//input[@name=\"q\"]"));
Actions a = new Actions(driver);
a.moveToElement(searchbox).sendKeys("cpa in india").sendKeys(Keys.ENTER).build().perform();
Thread.sleep(1000);
List<WebElement> adlinks = driver.findElements(By.xpath("//a[@class='Krnil']"));
for(int i=0;i<adlinks.size();i++)
{
//WebElement link = adlinks.get(i);
WebElement link = adlinks.get(i);
String linknames = adlinks.get(i).getAttribute("href");
System.out.println(linknames);
String miles = "mileseducation";
if(linknames.contains(miles))
{
}
else
{
link.click();
Thread.sleep(10000);
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
//driver.quit();
}
}
}
}
帮帮我。