一、iframe切换
以下介绍两种iframe切换方法
1、switch_to.frame()
frame函数中提供了三种定位方法:index、name、webelement。举例说明:
driver.switch_to.frame(‘frame_name’)
driver.switch_to.frame(1)
driver.switch_to.frame(driver.find_elements_by_tag_name(“iframe”)[0])
2、expected_conditions中frame_to_be_available_and_switch_to_it
结合显性等待方法,等待iframe框出现后自动切换iframe,其方法内部调用了 switch_to.frame 方法,所以定位iframe的方法与方法一相同。
需要引用 :
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
举例说明:
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it("login_frame_qq"))
二、window切换
1、switch_to.window
举例说明:
windows = driver.window_handles # 获取所有窗口
print('切换之前的窗口{}'.format(windows))
driver.switch_to.window(driver.window_handles[-1]) # 切换到新窗口
print('切换至后的窗口{}'.format(driver.current_window_handle))
2、expected_conditions中new_window_is_opened
结合显性等待方法,等待新窗口打开,再进行切换
需要引用 :
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
举例说明:
windows = driver.window_handles # 获取所有窗口
print('切换之前的窗口{}'.format(windows))
WebDriverWait(driver,10).until(EC.new_window_is_opened(windows)) # 判断新窗口打开
driver.switch_to.window(switch.window_handles[-1]) # 切换到新窗口
print('切换至后的窗口{}'.format(driver.current_window_handle))
网友评论