zoukankan      html  css  js  c++  java
  • Selenium_使用switch_to.frame处理网页框架切换(13)

    与在新窗口打开一个网页后需要切换窗口才能定位元素一样,在iframe标签中的元素也不能直接定位,需要切换到对应的iframe框架中才能进行元素定位。

    完成网页框架切换操作需要用selenium中的两个方法

    • driver.switch_to.frame(frame_reference):切换到网页框架内,frame_reference为框架元素
    • driver.switch_to.default_content():退出网页框架

    下面以网易邮箱(https://www.126.com/)演示网页的框架切换

    import time
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("https://www.126.com") time.sleep(3) # 直接定位账户输入框 try: driver.find_element_by_name("email") except Exception as e: print("无法在框架外定位框架内的元素") # 定位iframe fr = driver.find_element_by_tag_name("iframe") # 切换iframe driver.switch_to.frame(fr) # 账户框内输入test driver.find_element_by_name("email").send_keys("test") time.sleep(1) # 定位框架外元素 try: driver.find_element_by_xpath('/html/body/div[1]/div[1]/div') except Exception as e: print("无法在框架内定位框架外的元素") # 切换至iframe框架内,如果要操作框架外的元素需要退出iframe框架 driver.switch_to.default_content() el = driver.find_element_by_xpath('/html/body/div[1]/div[1]/div') print(el) time.sleep(2) driver.quit()

    执行结果

  • 相关阅读:
    详解Bootstrap进度条组件
    详解Bootstrap缩略图组件及警示框组件
    详解Bootstrap表单组件
    spring注解-@Autowired。@Resource。@Service
    spring注解-@Transactional事务几点注意
    17_8_9 Spring 注入
    MySQL常用语句
    Mysql 远程登录及常用命令
    数据库(外键及其约束理解)
    C语言队列(数组内核)
  • 原文地址:https://www.cnblogs.com/testlearn/p/14383049.html
Copyright © 2011-2022 走看看