问题:
driver.switch_to_frame("frame1")
,那么frame2
中的流程就会崩溃。尝试解决方案:
frame1
中有进程在frame2
启动进程并等待它继续进行。我不喜欢这个,因为这些过程是时间敏感的,这会大大减慢它们的速度。这也不容易扩展到> 2 iFrame。我想问的是,是否有一种优雅的方式让驱动程序同时专注于多个iFrame?我正在使用Python,但如果你有一个解决方案另一种语言,我很乐意学习它。
答案 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)