zoukankan      html  css  js  c++  java
  • 学习Selenium元素定位--多表单切换

      在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位。这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面中。

    #!/usr/bin/env/ python
    # coding:utf-8
    # Date:2019/1/10
    from selenium import webdriver
    import time
    #打开浏览器-Chrome
    driver = webdriver.Chrome()
    #进入网页
    driver.get('https://mail.126.com')
    #等待10s
    time.sleep(10)
    
    # driver.switch_to.frame('x-URS-iframe')
    
    # xf = driver.find_element_by_xpath('//*[@id="x-URS-iframe*"]')
    # driver.switch_to.frame(xf)
    #定位iframe元素
    xf = driver.find_element_by_tag_name("iframe")
    driver.switch_to.frame(xf)
    #清空email栏位
    driver.find_element_by_name('email').clear()
    #输入登陆名
    driver.find_element_by_name('email').send_keys('username')
    #清空密码栏位
    driver.find_element_by_name('password').clear()
    #输入密码
    driver.find_element_by_name('password').send_keys('password')
    #点击登陆按钮
    driver.find_element_by_id('dologin').click()
    driver.switch_to.default_content()
    
    time.sleep(5)
    
    driver.quit()

    由于无法直接使用 driver.switch_to.frame('x-URS-iframe') 进行定位iframe表单,使用xpath也无法定位iframe元素,所以最终参照使用了find_element_by_tag_name

    进行定位。

  • 相关阅读:
    Ubuntu16.04 + CUDA 8.0 (GTX 1050ti)
    关于MapD的集群建立
    2-7 单位和坐标系
    2-6 光线投射
    2-5 事件系统(Event System)
    2-4 Rect Transform(矩形)组件的属性
    2-3 RectangleTransform矩形组件
    2-2 Graphic Raycasrer组件(光线投射)
    2-1 Ui元素-画布
    1-5 事件方法的执行顺序
  • 原文地址:https://www.cnblogs.com/ruichow/p/10253735.html
Copyright © 2011-2022 走看看