gpt4 book ai didi

java - Java-selenium 上的 StaleElementReferenceException 错误

转载 作者:行者123 更新时间:2023-12-02 04:25:32 25 4
gpt4 key购买 nike

当我运行从 Flipkart.com 选择“立即购买”的代码时,出现 StaleElementReferenceException。这是我所拥有的,但它对我不起作用。

public void SelectItemfromPage(){

WebDriver wd = new FirefoxDriver();

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.flipkart.com");
WebElement element = wd.findElement(By.xpath(".//*[@id='fk-top-search-box']"));
element.sendKeys("moto g");
element.submit();


element.findElement(By.xpath(".//*[@id='products']/div/div[1]/div[1]/div/div[1]/a[1]/img")).click();
element.findElement(By.xpath(".//*[@id='fk-mainbody-id']/div/div[7]/div/div[3]/div/div/div[6]/div/div[3]/div[1]/div/div[2]/div/div[2]/form/input[9]")).click();
}

最佳答案

你的做法是完全错误的。您正在保存 WebElement 并重用它,这不是正确的方法。当您将 WebElement 保存在对象(本例中为元素)中时,每当 DOM 发生更改时,WebElement 就会变得过时。您需要执行以下操作:

WebDriver wd = new FirefoxDriver();

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.flipkart.com");
WebElement element = wd.findElement(By.xpath(".//*[@id='fk-top-search-box']"));
element.sendKeys("moto g");
element.submit();


wd.findElement(By.xpath(".//*[@id='products']/div/div[1]/div[1]/div/div[1]/a[1]/img")).click();
wd.findElement(By.xpath(".//*[@id='fk-mainbody-id']/div/div[7]/div/div[3]/div/div/div[6]/div/div[3]/div[1]/div/div[2]/div/div[2]/form/input[9]")).click();

关于java - Java-selenium 上的 StaleElementReferenceException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32226201/

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