You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium脚本无法切换目标iframe问题求助

问题描述

我编写了一段Python Selenium脚本,需要定位元素并输入文本,但无法切换至目标元素所在的iframe。此前已成功切换并完成交互的两个iframe位于该目标iframe上方。

目标iframe的HTML信息

<iframe id="zzzzAIDGLKGG.VerticalContainerView.Iframe11420996026" ct="IF" lsdata="{&quot;0&quot;:&quot;100%&quot;,&quot;1&quot;:&quot;/irj/servlet/prt/portal/prtroot/com.sap.portal.pagebuilder.IviewModeProxy?iview_id=pcd%3Aportal_content%2F.portal_pt%2F.role%2Fpt.telecom.order_entry%2F.order_entry%2F.acolhimento%2F.acolhimento_order_entry&amp;iview_mode=default&amp;ClientWindowID=WID1687259978810&quot;}" tabindex="0" ti="0" name="zzzzAIDGLKGG.VerticalContainerView.Iframe11420996026" forwarddragdropevents="false" src="/irj/servlet/prt/portal/prtroot/com.sap.portal.pagebuilder.IviewModeProxy?iview_id=pcd%3Aportal_content%2Fportal_pt%2Frole%2Forder_entry%2F.order_entry%2Facolhimento%2Facolhimento_order_entry&amp;iview_mode=default&amp;ClientWindowID=WID1687259978810" border="no" frameborder="0" scrolling="auto" style="width:100%;height:100%;"></iframe>

当前代码

driver.get('http://mysite.pt/irj/portal')
time.sleep(2)
#LOGIN
driver.find_element(By.ID, 'logonuidfield').send_keys('user')
driver.find_element(By.ID, 'logonpassfield').send_keys('pass')
driver.find_element(By.NAME, 'uidPasswordLogon').click()
time.sleep(5)

wait = input("Press Enter to continue.0 ")

waitf = WebDriverWait(driver, 10)
iframe = waitf.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "ivuFrm_page0ivu3")))  

wait = input("Press Enter to continue.1 ")
iframe = waitf.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "isolatedWorkArea")))    
wait = input("Press Enter to continue.2 ")

iframe = waitf.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "zzzzAIDGLKGG.VerticalContainerView.Iframe11420996026")))

脚本执行到最后一行时中断。

已尝试的切换方式

  • 方式1:
iframe = driver.find_element(By.CSS_SELECTOR,'iframe[id="zzzzAIDGLKGG.VerticalContainerView.Iframe11420996026"]')
  • 方式2:
iframe = driver.find_element(By.XPATH, '//iframe[@id="zzzzAIDGLKGG.VerticalContainerView.Iframe11420996026"]')
  • 方式3:
iframe = waitf.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'zzzzAIDGLKGG\.VerticalContainerView\.Iframe11420996026')))
  • 方式4:
iframe = driver.find_element(By.XPATH, '//iframe[@id="zzzzAIDGLKGG.VerticalContainerView.Iframe11420996026"]')
  • 方式5:
iframe = driver.find_element(By.XPATH,"//iframe[@src='/irj/servlet/prt/portal/prtroot/com.sap.portal.pagebuilder.IviewModeProxy?iview_id=pcd%3Aportal_content%2Fpt.portal_pt%2Fpt.telecom.role%2Fpt.telecom.order_entry%2Fpt.telecom.order_entry%2Fpt.telecom.acolhimento%2Fpt.acolhimento_order_entry&iview_mode=default&ClientWindowID=WID1687259978810']")
  • 方式6:
iframe = driver.find_element(By.XPATH,"//iframe[@src='http://fullsitelink.pt/irj/servlet/prt/portal/prtroot/com.sap.portal.pagebuilder.IviewModeProxy?iview_id=pcd%3Aportal_content%2Fpt.telecom.portal_pt%2Fpt.telecom.role%2Fpt.telecom.order_entry%2Fpt.telecom.order_entry%2Fpt.telecom.acolhimento%2Fpt.telecom.acolhimento_order_entry&iview_mode=default&ClientWindowID=WID1687259978810']")

内容的提问来源于stack exchange,提问作者Tiago Saavedra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 02:22:04