Python Selenium脚本无法切换目标iframe问题求助
问题描述
我编写了一段Python Selenium脚本,需要定位元素并输入文本,但无法切换至目标元素所在的iframe。此前已成功切换并完成交互的两个iframe位于该目标iframe上方。
目标iframe的HTML信息
<iframe id="zzzzAIDGLKGG.VerticalContainerView.Iframe11420996026" ct="IF" lsdata="{"0":"100%","1":"/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&iview_mode=default&ClientWindowID=WID1687259978810"}" 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&iview_mode=default&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
相关产品推荐
相关产品推荐

