当前位置:   article > 正文

python自动化测试selenium(四)切换页面、切换窗口_python selenium 同一个窗口里不同页面

python selenium 同一个窗口里不同页面

一、切换页面
如果定位元素失败(抛出NoSuchElementException),调查网页源代码,发现这个元素位于一个frame或iframe标记的元素下的子网页(html标记)里,那么此时需要切换Frame。

切换方法一:使用frame或iframe标记的元素的id或name属性值来作为切换条件

switch_to.frame() 将当前定位的主体切换为frame/iframe表单的内嵌页面中
switch_to.default_content() 跳回最外层的页面

    driver.switch_to.default_content()
    driver.switch_to.frame("MAINPAGE")
    driver.find_element(By.XPATH, "//*[@id='menuBottom']/div[5]/a/div").click()
  • 1
  • 2
  • 3

二、切换窗口
​ 页面是存在多窗口的,但是selenium默认焦点只会在主窗口上的所有元素,不切换窗口,就不能操作除主窗口以外的窗口内元素。

每个窗口都有唯一的一个句柄值,那么我们就可以通过句柄值来完成窗口的切换操作

​ 方法:
​ 1)、driver.current_window_handle (获取当前的句柄值)
​ 2)、driver.window_handles ( 获取当前由driver启动所有窗口句柄)
​ 3)、driver.switch_to.window(handle) —> 切换窗口

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('file:///D:/%E6%A1%8C%E9%9D%A2/page/%E6%B3%A8%E5%86%8C%E5%AE%9E%E4%BE%8B.html')
driver.find_element_by_id('ZCB').click()

# 1).切换窗口操作,driver.window_handles 获取driver启动的所有窗口句柄
handles = driver.window_handles

# 2).切换窗口工作
driver.switch_to.window(handles[-1])
driver.find_element_by_id('userB').send_keys('admin9')


driver.quit()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/488983
推荐阅读
相关标签
  

闽ICP备14008679号