我有以下代码,它正在寻找两个框架,然后单击一个链接。
此代码适用于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")
答案 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)