Need to access elements inside a modal iframe.
Below code works perfectly fine for FireFox driver while fails for 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)));
Does Chrome driver support switchTo.frame(<‘frameId’>)?
Error while using Chrome Driver –
org.openqa.selenium.WebDriverException: Unknown command. Options: ActivateTab, CaptureEntirePage, CloseTab, DeleteCookie, …
Command duration or timeout: 220 milliseconds
Build info: version: ‘2.25.0’, revision: ‘17482’, time: ‘2012-07-18 22:18:01’
System info: os.name: ‘Windows 7’, os.arch: ‘amd64’, os.version: ‘6.1’, java.version: ‘1.7.0_05’
Driver info: driver.version: RemoteWebDriver
Session ID: cbde65cb0394ee0434b3bb528918ce40
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:498)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:244)
at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:87)
at com.shn.services.Office365.sharePointUploadFile(Office365.java:173)
at com.shn.test.RunOffice365Test.testSharePointUploadAndDeleteFile(RunOffice365Test.java:55)
at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:74)
at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92)
at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
The issue was neither with chromeDriver nor selenium. Both were running on latest versions.
chromeDriver – 23.0.1240.0
Selenium – 2.25.0
The issue was with Chrome Browser.
My browser was running on ver. 12.0.742.112.
Automatic updates were failing due to –
I had to uninstall & install back the browser to get it to the latest ver. 21.0.1180.89 m.
The issue is now fixed & I am able to switch between frames.