StaleElementReferenceException

StaleElementReferenceException

我有一个StaleElementReferenceException。

我找到了How to avoid "StaleElementReferenceException" in Selenium?。我试图理解并使其适合我的代码。

By ordersBy = (By.id("subtab-AdminParentOrders"));
        WebElement orders = driver.findElement(ordersBy);
        orders.click();
        public boolean retryingFindClick () {
            boolean result = false;
            int attempts = 0;
            while (attempts < 2) {
                try {
                    driver.findElement(By.id("subtab-AdminParentOrders")).click();
                    result = true;
                    break;
                } catch (StaleElementReferenceException e) {
                }
                attempts++;
            }
            return result;
        }


第一次编译错误。我应该粘贴什么作为参数?为什么要使用分号?

java - 如何避免 Selenium 中的“StaleElementReferenceException”?-LMLPHP

我主要写了这个方法。也许这就是为什么退货被拒绝的原因。我怎样才能使这种方法适应我的代码(在主体中)?

java - 如何避免 Selenium 中的“StaleElementReferenceException”?-LMLPHP

最佳答案

从我的角度来看,您已经在另一个方法中创建了一个方法,但它并非如此。也将retryingFindClick()放入类主体中,只需将try代码替换为以下内容,它应该可以工作:

try{
         WebElement elem = driver.findElement(By.id("subtab-AdminParentOrders"));
         elem.click();
         result = true;
         break;
   }
   ...

09-08 08:14