<'WebDriver'>.switchTo().frame(<'frameId'>)无法使用Chrome驱动程序

pra*_*eel 7 iframe selenium google-chrome webdriver

需要访问模态iframe中的元素.

以下代码适用于FireFox驱动程序,而Chrome无效 -

String frameId = null;
List<WebElement> frameSet = driver.findElements(By.tagName("iframe"));  
for (WebElement frameName : frameSet){  
    if(!(frameName.getAttribute("id").isEmpty()) && (frameName.getAttribute("id").contains("DlgFrame"))){
            frameId = frameName.getAttribute("id");
        }
}

try {
    Thread.sleep(10000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
    e.printStackTrace();
    }

Logger.info("Switch to Frame - "+frameId);
driver.switchTo().frame(driver.findElement(By.id(frameId)));
Run Code Online (Sandbox Code Playgroud)

Chrome驱动程序是否支持switchTo.frame(<'frameId'>)?

使用Chrome驱动程序时出错 -

org.openqa.selenium.WebDriverException:未知命令.选项:ActivateTab,CaptureEntirePage,CloseTab,DeleteCookie,...

命令持续时间或超时:220毫秒构建信息:版本:'2.25.0',修订版:'17482',时间:'2012-07-18 22:18:01'系统信息:os.name:'Windows 7', os.arch:'amd64',os.version:'6.1',java.version:'1.7.0_05'驱动程序信息:driver.version:RemoteWebDriver会话ID:cbde65cb0394ee0434b3bb528918ce40 at org.openqa.selenium.remote.ErrorHandler.createThrowable(位于org.openqa.selenium的org.openqa.selenium.remote.remote.selen上的org.openqa.selenium.remote.RemoteWebDriver.exe(RemoteWebDriver.java:498)org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)中的ErrorHandler.java:188 .remote.RemoteWebElement.execute(RemoteWebElement.java:244)atg.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:87)at com.shn.services.Office365.sharePointUploadFile(Office365.java:173)at at org.apache.maven.surefire.tes上的org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:74)中的com.shn.test.RunOffice365Test.testSharePointUploadAndDeleteFile(RunOffice365Test.java:55)tg.Test.GX.TestSuiteInProcess(SurefireBooter.java)中的org.apache.maven.surefire.Surefire.run(Surefire.java:180)上的Tng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92) 350)at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)

Tar*_*ken 5

ChromeDriver实现了WebDriver界面,因此支持switchTo。这对我来说可以。

您必须这样做:

driver.switchTo().frame(driver.findElement(By.id("frameId")));
//do your stuff
driver.switchTo().defaultContent();
Run Code Online (Sandbox Code Playgroud)


pra*_*eel 5

chromeDriver和硒都没有问题。两者都在最新版本上运行。

chromeDriver-23.0.1240.0

硒-2.25.0

问题出在Chrome浏览器上。

我的浏览器正在运行。12.0.742.112。自动更新因-

更新服务器不可用(错误:7)

我必须卸载并重新安装浏览器才能将其升级到最新版本。21.0.1180.89百万

现在,此问题已解决,并且可以在两个框架之间切换。