当前位置: 首页 > 知识库问答 >
问题:

单击加载更多引线将导致错误,说明该元素不再可见

庞意智
2023-03-14

我有一个搜索屏幕,在我输入搜索条件和搜索后,如果有超过30条记录,将显示加载更多按钮。问题是它单击加载更多按钮,但导致陈旧元素异常

        String loadmoreXpath = AppXPathsConstants.buttonXpath_replace.replace("XXXX","Load More");
    
        if(driver.findElements(By.xpath(loadmoreXpath)).size()!= 0) 
        {
            
        WebElement loadmoreElem = DriverUtil.getFluentWaitElementByXPath(loadmoreXpath,20, driver);
    
        do
        {
            PageUtil.scrolltoBottom(driver);
            WebDriverWait wait = new WebDriverWait(driver,60);
            wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[contains(@class,'mat-button-wrapper') and contains(normalize-space(),'Load More')]")));
            loadmoreElem.click();
            DriverUtil.waitTime(6000);
            WebDriverWait w = new WebDriverWait(driver,10);
             w.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath(loadmoreXpath)));
        }

        while(driver.findElements(By.xpath("//span[contains(@class,'mat-button-wrapper') and contains(normalize-space(),'Load More')]")).size()>0);
        }

StackTrace:在运行代码时,我得到以下问题:org.openqa.selenium.timeoutException:预期条件失败:等待元素不再可见:by.xpath://span[contains(@class,'mat-button-wrapper')和contains(normalize-space(),'load more')](以500毫秒间隔尝试10秒)

共有1个答案

慎俊艾
2023-03-14

我认为这是因为,在执行click操作之后,您正在定义loadmoreelems(在循环中)。因此,它单击了load more按钮一次,因为您已经在循环之外定义了loadmoreelems。在第一次单击之后,您没有在单击操作之前定义它,并且以前定义的loadmoreelems不再有效。

在此之前定义它,然后尝试:

WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//span[contains(@class,'mat-button-wrapper') and contains(normalize-space(),'Load More')]")));
loadmoreElems = DriverUtil.getFluentWaitElementByXPath(loadmoreXpath,20, driver);
loadmoreElems.click();
if(!loadmoreElem.isDisplayed())...
 类似资料:
  • 问题内容: 我想单击一个单选按钮,出现在网页上。代码如下: HTML代码: Tesstcase: 此测试通过错误: 1)量角器演示应用检查项目数 信息: 失败:元素不可见 我也尝试过: 它给出了错误: [16:16:26] E / launcher-参数列表后出现错误:SyntaxError:缺少) 请提出建议,单选按钮将如何获得点击? 问题答案: 在使用硒进行测试自动化中,这是一个相当普遍的问题

  • 我想点击一个单选按钮,出现在网页上。代码如下所示: HTML代码: 泰斯特案例: 此测试通过错误: 1)量角器演示应用程序检查项目计数 消息: 失败:元素不可见 我还尝试了: 它给出错误: [16:16:26]E/启动器-参数列表后的错误:语法错误:缺失) 请建议,单选按钮将如何获得点击?

  • 一个测试用例在chrome驱动程序中随机失败 我正在检查Wait.Until(ExpectedConditions.ElementToBeclickable(ele));我也试过线程。睡眠

  • 环境Chrome:版本39.0.2171.95 Chrome Driver:2.13(最新)Selenium WebDriver

  • 当试图单击appl上的按钮时,我收到以下错误: WebDriverException:在点(x,y)不能单击元素。其他元素将收到click: 操作没有发生,但对象正在被识别。然后显示错误消息而失败。 请告诉我如何解决这个问题。谢谢