-1

我正在尝试在下拉列表的所有选项之间进行迭代,并且它适用于第一个选项。在第二个选项之后,我得到了陈旧的元素异常。

下面是跟踪:

org.openqa.selenium.StaleElementReferenceException:过时的元素引用:元素未附加到页面文档

下面是我的代码:

WebElement element = login.clickonCustomer();
        Select select = new Select(element);
        List<WebElement> listofelements = select.getOptions();
        for (int i = 1; i < listofelements.size(); i++) {
            String elementText = listofelements.get(i).getText();
            System.out.println(elementText);
            select.selectByVisibleText(elementText);
            login.ClickonLogin().click();
            Thread.sleep(3000);
            Accounts.clickonLogout().click();

        }
    }
4

2 回答 2

0

得到了解决方案。

   `element = login.customer();
    Select select = new Select(element);
    List<WebElement> listofelements = select.getOptions();
    // iterate through each and every option in the drop down
    for (int j = 1; j < listofelements.size(); j++) {
        Thread.sleep(3000);
        login.customer().click();
        String elementText = listofelements.get(j).getText();
        select.selectByVisibleText(elementText);
        login.loginbutton().click();
        Thread.sleep(3000);
        Assert.assertEquals(accounts.customername().getText(), elementText);
        accounts.logout().click();
        element = login.customer();
        select = new Select(element);
        listofelements = select.getOptions();
        }`
于 2018-02-19T10:16:14.977 回答
-1

尝试将代码包含在 try catch 块中。

  try
    {
        //your code to execute
    }
    catch(StateElementException e)
    {
   //enter the code that causes stale element exception
    }
于 2018-02-17T10:21:14.070 回答