Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Wannan tattunawa ta zama daɗaɗɗiya. Yi sabuwar tambaya idan ka na bukatar taimako.

Is it possible to emulate the Firefox-console cd function and/or javascript-context-switching in selenium-webriver?

  • 1 amsa
  • 1 yana da wannan matsala
  • 11 views
  • Amsa ta ƙarshe daga grobber

more options

The Firefox Web Console currently (version 80.0.1 as I type this) supports Javascript-context-switching to an iframe through a cd function (albeit set to be removed), as in

var ifr = document.getElementById('frame_id'); cd(ifr);

The same goal can be accomplished

  • by selecting a different Javascript context from a drop-down menu in the upper-right corner of the Web Console, as mentioned in that bug;
  • similarly in Chrome DevTools (see also an older SO exchange on this).

Question:

Is it possible to achieve the same effect while driving Firefox headless with selenium-webdriver?

Background:

I have a page loading a cross-origin iframe I have no control over, and would like to access DOM elements under that iframe. I can do this in the Web Console, but I have been unsuccessful in doing so via Selenium (specifically, node + the selenium-webdriver package):

Selecting the relevant iframe and then switching to it with

ifr = driver.findElement(By.id('frame_id')); driver.switchTo().frame(ifr);

gives me access to a different DOM than what I see in the Web Console: in Selenium I do not have access to the buttons, forms, etc. available in the browser when I interact with the latter directly.

The Firefox [https://developer.mozilla.org/en-US/docs/Tools/Web_Console Web Console] currently (version 80.0.1 as I type this) supports Javascript-context-switching to an iframe through a cd function (albeit [https://bugzilla.mozilla.org/show_bug.cgi?id=1605327 set] to be removed), as in var ifr = document.getElementById('frame_id'); cd(ifr); The same goal can be accomplished * by selecting a different Javascript context from a drop-down menu in the upper-right corner of the Web Console, as mentioned in that bug; * similarly in [https://developers.google.com/web/tools/chrome-devtools/console/reference#context Chrome DevTools] (see also an [https://stackoverflow.com/a/8581276/11064961 older SO exchange] on this). '''Question:''' Is it possible to achieve the same effect while driving Firefox headless with [https://www.npmjs.com/package/selenium-webdriver selenium-webdriver]? '''Background:''' I have a page loading a cross-origin iframe I have no control over, and would like to access DOM elements under that iframe. I can do this in the Web Console, but I have been unsuccessful in doing so via Selenium (specifically, node + the selenium-webdriver package): Selecting the relevant iframe and then switching to it with ifr = driver.findElement(By.id('frame_id')); driver.switchTo().frame(ifr); gives me access to a different DOM than what I see in the Web Console: in Selenium I do not have access to the buttons, forms, etc. available in the browser when I interact with the latter directly.

Mafitar da aka zaɓa

The answer is 'yes'. A link to the relevant Stack Overflow discussion:

https://stackoverflow.com/a/63715117/11064961

Karanta wannan amsa a matsayinta 👍 0

All Replies (1)

more options

Zaɓi Mafita

The answer is 'yes'. A link to the relevant Stack Overflow discussion:

https://stackoverflow.com/a/63715117/11064961