Java SeleniumWebDriver需要花费大量时间在iframe中查找元素

Java SeleniumWebDriver需要花费大量时间在iframe中查找元素,java,iframe,selenium,Java,Iframe,Selenium,我使用的是Webdriver 2.39.0和FF 26(我也尝试了27),我有以下html: <div id="sCaroiaj_harta"> <iframe id="ifr_layout_prepay" scrolling="no" frameborder="0" src="http://test-harta.ci.rmn.ro//layout/prepay/init/1/lat/45.738235215834/lon/21.222698590278/of_lat/0

我使用的是Webdriver 2.39.0和FF 26(我也尝试了27),我有以下html:

<div id="sCaroiaj_harta">
<iframe id="ifr_layout_prepay" 
scrolling="no" 
frameborder="0" 
src="http://test-harta.ci.rmn.ro//layout/prepay/init/1/lat/45.738235215834/lon/21.222698590278/of_lat/0/of_lon/0/adresa/073074072061064061/iZoom/15/caroiaj">
<!DOCTYPE html>
<html>
<head></head>
<body>
<div id="map_container_2">
<div id="map_container_1">
<div id="map_container" class="clearfix">
<div id="map" class="olMap cursorMap cursorMapFix"></div>
</div>
</div></div></body></html>
</iframe>
</div>
发生的情况是,测试找到iframe并切换到iframe,然后大约需要5分钟才能找到“map”元素并继续执行其他指令。我想指定,当尝试查找“map”时,它只会挂起10秒以上,这是我输入的等待时间

所以我不知道为什么会发生这种情况,以前有没有人经历过这种情况,或者有什么想法?
谢谢,不用WebDriverWait,只需使用您自己的等待方法即可

public static void waitForAnElementToAppear(By by) {
            int i=0;
            while(!isElementPresent(by))
            {
                Thread.sleep(100);
                if(++i>100)
                {
                    break;
                }
            }
   }
您可以找到isElementPresent方法实现

现在试试下面的流程

driver.switchTo().frame("ifr_layout_prepay");
MyWait.waitForAnElementToAppear(By.id("map"));
click(By.id("map"));

你检查过车架是否满载了吗?我也有类似的问题,因为一个不存在的图像。Firefox正在等待页面加载。Chrome没有等。你能用铬试一试吗?
driver.switchTo().frame("ifr_layout_prepay");
MyWait.waitForAnElementToAppear(By.id("map"));
click(By.id("map"));