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

    进行定位。

  • 相关阅读:
    Mysql日志管理
    Mysql 安全和DCL语句
    Mysql DDL语句之视图
    Mysql增删改查(DML、DQL)
    Mysql操作之部分DDL语句
    如何做事情
    temp
    asp.net入门
    希望尽快回忆起来
    需求?
  • 原文地址:https://www.cnblogs.com/ruichow/p/10253735.html
Copyright © 2011-2022 走看看