【问题标题】:Element not found in cache - perhaps the page has changed since it has looked up缓存中未找到元素 - 页面可能在查找后已更改
【发布时间】:2015-04-27 10:46:47
【问题描述】:

我正在测试一个网络应用程序,在打开一个页面后,我需要选择一个单选按钮,然后会出现一个弹出窗口。在那个弹出窗口中,我选择了一个 ID。选择后,它将进入主窗口,我正在尝试选择带有 ID 的文本字段。但我收到以下错误:

Element not found in the cache - perhaps the page has changed since it was looked up Command duration or timeout: 50.14 seconds

  driver.findElement(By.xpath("html/body/section/div/div[2]/div[3]/div/div/div/div/ul/li[1]/a")).click();
    driver.findElement(By.xpath("html/body/section/div/div[12]/div[1]/div/div[2]/div[3]/div/div/div/div/button[1]")).click();
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    String mainWindowHandle=driver.getWindowHandle();
    driver.findElement(By.xpath("html/body/div[3]/div/div")).click();
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    Set s = driver.getWindowHandles();
    Iterator ite = s.iterator();
    while(ite.hasNext())
    {
         String popupHandle=ite.next().toString();
         if(!popupHandle.contains(mainWindowHandle))
         {
               driver.switchTo().window(popupHandle);
         }
    }
    driver.findElement(By.xpath("html/body/div[3]/div/div/div[3]/div/div/div[1]/div[2]/div[4]/div[2]/a")).click();
    driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
    driver.switchTo().window( mainWindowHandle );
    driver.findElement(By.id("Title")).sendKeys("auto title");

问题是我找不到 ID 为 Title" for inserting "auto title 的文本字段。

提前致谢。

【问题讨论】:

    标签: java selenium selenium-webdriver


    【解决方案1】:

    不要使用带有硬编码时间间隔的sleep(),而是使用显式等待

    WebDriverWait wait = new WebDriverWait(driver, 30);
    
    WebElement title = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Title")));
    title.sendKeys("auto title");
    

    【讨论】:

      【解决方案2】:

      终于找到解决办法了

      Thread.sleep(5000);
      

      在找到元素并解决之前。

      【讨论】:

        猜你喜欢
        • 2014-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多