Pesquisar no site de suporte

Evite golpes de suporte. Nunca pedimos que você ligue ou envie uma mensagem de texto para um número de telefone, ou compartilhe informações pessoais. Denuncie atividades suspeitas usando a opção “Denunciar abuso”.

Saiba mais

Esta discussão foi arquivada. Faça uma nova pergunta se precisa de ajuda.

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

  • 1 resposta
  • 1 tem este problema
  • 25 visualizações
  • Última resposta de 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.

Solução escolhida

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

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

Ler esta resposta 👍 0

Todas as respostas (1)

more options

Solução escolhida

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

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