I used to get the below error when I try to switch to iframe ( driver.switchTo().frame("iframe_canvas") ).
Permission denied for <https://apps.facebook.com> to get property Window.frameElement Command duration or timeout: 12 milliseconds Build info: version: '2.21.0', revision: '16552', time: '2012-04-11 19:09:00' System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_23' Driver info: driver.version: RemoteWebDriver
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
Seems this issue is happening because of Cross Origin .
Solution to this problem is set the below settings in Firefox Profile.
http://code.google.com/p/selenium/issues/detail?id=2863
If you ever happened to get the above error then change your Firefox preferences from code :)
Permission denied for <https://apps.facebook.com> to get property Window.frameElement Command duration or timeout: 12 milliseconds Build info: version: '2.21.0', revision: '16552', time: '2012-04-11 19:09:00' System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_23' Driver info: driver.version: RemoteWebDriver
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
Seems this issue is happening because of Cross Origin .
Solution to this problem is set the below settings in Firefox Profile.
capability.policy.default.Window.QueryInterface='allAccess' capability.policy.default.Window.frameElement.get='allAccess'I changed my code as below. Now it is working fine :)
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public void IframeTest(){ WebDriver driver; @BeforeTest public void setUpDriver() { FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("capability.policy.default.Window.QueryInterface", "allAccess"); profile.setPreference("capability.policy.default.Window.frameElement.get","allAccess"); driver = new FirefoxDriver(profile); } @Test public void delete(){ Common.FBLogin(fbUsername, fbPassword, driver); driver.get("appURL"); driver.switchTo().defaultContent(); driver.switchTo().frame("iframe_canvas"); } }For more details check this one :
http://code.google.com/p/selenium/issues/detail?id=2863
If you ever happened to get the above error then change your Firefox preferences from code :)
Thanks. The recommended solution in this blog did not work for me in Firefox 14.
ReplyDeleteBelow did:
driver.switchTo().frame(driver.findElement(By.id("my-frame-id")));