gpt4 book ai didi

java - 使用 selenium webdriver 从同一页面逐一单击链接

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:00 25 4
gpt4 key购买 nike

我正在尝试单击给定 url 的状态链接,然后打印下一页的标题并返回,然后使用 for 循环动态单击另一个状态链接。但循环在初始值后停止。
我的代码如下:

 public class Allstatetitleclick {  
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("http://www.adspapa.com/");

WebElement catBox = driver.findElement(By.xpath("html/body/table[1]/tbody/tr/td/table/tbody/tr/td[1]/table"));
List<WebElement> catValues = catBox.findElements(By.tagName("a"));

System.out.println(catValues.size());

for(int i=0;i<catValues.size();i++){

//System.out.println(catValues.get(i).getText());
catValues.get(i).click();
System.out.println(driver.getTitle());
driver.navigate().back();

}
System.out.println("TEST");
}
}

最佳答案

问题是在导航回之前找到的元素将过期。因此我们需要更新代码以在返回后重新查找元素。

更新下面的代码:

        WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("http://www.adspapa.com/");

WebElement catBox = driver.findElement(By.xpath("html/body/table[1]/tbody/tr/td/table/tbody/tr/td[1]/table"));
List<WebElement> catValues = catBox.findElements(By.tagName("a"));

for(int i=0;i<catValues.size();i++)
{
catValues.get(i).click();
System.out.println(driver.getTitle());
driver.navigate().back();
catBox = driver.findElement(By.xpath("html/body/table[1]/tbody/tr/td/table/tbody/tr/td[1]/table"));
catValues = catBox.findElements(By.tagName("a"));
}
driver.quit();

我最后测试了上面的代码并且它工作正常。你可以根据你的使用改进上面的代码。

关于java - 使用 selenium webdriver 从同一页面逐一单击链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21457105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com