多个流程中的几个iFrame?

时间:2014-02-20 17:51:02

标签: python iframe selenium selenium-webdriver

问题:

  • 我有几个需要在一个iFrame中运行的进程,我有另一个进程需要与其他进程并行运行,但是在不同的iFrame中。如果我使用driver.switch_to_frame("frame1"),那么frame2中的流程就会崩溃。

尝试解决方案:

  • 我在frame1中有进程在frame2启动进程并等待它继续进行。我不喜欢这个,因为这些过程是时间敏感的,这会大大减慢它们的速度。这也不容易扩展到> 2 iFrame。

我想问的是,是否有一种优雅的方式让驱动程序同时专注于多个iFrame?我正在使用Python,但如果你有一个解决方案另一种语言,我很乐意学习它。

1 个答案:

答案 0 :(得分:0)

根据理查德的建议,我终于使用Selenium的JS执行器解决了这个问题。我基本上完成了this answer中的建议。

在一个过程中,

command = "window.frames['IFrame1'].document.getElementById('elementInFrame1')"
driver.execute_script(command)

在另一个过程中也是如此,

command = "window.frames['IFrame2'].document.getElementById('elementInFrame2')"
driver.execute_script(command)