处理框架 - Python Webdriver

时间:2015-03-31 18:20:02

标签: python internet-explorer selenium-webdriver safari

我有以下代码,它正在寻找两个框架,然后单击一个链接。

此代码适用于Chrome和Firefox。在IE中虽然测试只是坐在这个页面上,但从不做任何事情。在Safari中,我得到一个错误,框架不存在,这是hogwash,我可以在Safari开发人员工具中看到它。所以我想知道如何在所有浏览器中使这项工作。

try:
    iframe = driver.find_element_by_id('iFrm')
    driver.switch_to_frame(iframe)
    print "Navigated to iFrm frame"
except:
    raise InvalidSwitchToTargetException(msg="Couldn't find the iFrm frame")
try:
    nav_frame = driver.find_element_by_id('nav')
    driver.switch_to_frame(nav_frame)
    print "Navigated to nav frame"
except:
    raise InvalidSwitchToTargetException(msg="Couldn't find the nav frame")

1 个答案:

答案 0 :(得分:1)

如果是Safari,Explicit Wait 可以提供框架

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

...

wait = WebDriverWait(browser, 10)
frame = wait.until(EC.presence_of_element_located((By.ID, 'iFrm')))

driver.switch_to_frame(frame)