• WebDriver--简单的元素操作


    以登录163邮箱为例,演示以下几个方法的使用

    ①switch_to.frame()

    ②.clear()

    ③.send_keys()

    ④.click()

    ⑤switch_to_default_content()

    一、先分析163邮箱登录首页的HTML代码如下截图所示,分析一下几个需要注意的地方

    用Firefox浏览器,通过Firebug定位”邮箱账号“输入处,其html代码如截图中蓝色部分

    先来分析一下该元素,其tag为input,其属性有id、class、type、name、style等等,

    不难发现该元素的id属性值中带有数字,一般带有数字的id值是可变的,不唯一,保险起见,定位该元素时不用id的定位方式

    在邮箱地址输入框的上方,可以看出其嵌套在表单frame/iframe中,所以定位邮箱账号输入框时,先进入到frame/iframe表单中

    frame/iframe的定位方式有3种,一是通过id;二是通过name;三是xpath

    例:switch_to_frame(id)  ; 或是  switch_to_frame(name);若frame没有id和name,只能是通过xpath方式定位到frame,switch_to_frame(xpath)

     二、具体的登录代码如下:

    # -*- coding:utf-8 -*-
    from selenium import webdriver
    import time
    
    
    driver = webdriver.Firefox()
    driver.get("http://www.mail.163.com/")
    
    
    driver.switch_to.frame("x-URS-iframe")         #①switch_to.frame()进入到表单中     
    driver.find_element_by_xpath("//input[@class='j-inputtext dlemail']").clear()  #②定位邮箱地址输入框,有时输入框中记忆了上次的账号,所以用clear()先清理一下输入框中的内容
    driver.find_element_by_xpath("//input[@class='j-inputtext dlemail']").send_keys(username)   #③在邮箱地址输入框中用send_keys()输入用户名
    driver.find_element_by_xpath("//input[@class='j-inputtext dlpwd']").send_keys(password)   #③在密码输入框中用send_keys()输入密码
    driver.find_element_by_id("dologin").click()      #④click()点击登录按钮
    driver.switch_to.default_content()    #⑤switch_to.default_content() 退出所有的表单;switch_to.parent_frame()退出当前一级表单
    time.sleep(5)
    driver.quit()


    若文中内容有误,希望大家指正,谢谢。

  • 相关阅读:
    CharacterEncodingFilter详解及源码解析
    SPI 串行Flash闪存W25Q128FV 的使用(STM32F407)_硬件篇
    STM32 TFT LCD
    什么叫状态机:按键消抖实例
    STM32 ADC单通道采集 (STM32F103C8T6 ADC1的0通道 )
    STM32 PWM输出 (STM32F103C8T6 TIM2_CH2 )
    STM32 多通道ADC连续采集之数据到内存 DMA传输
    STM32 DAM之串口通讯
    STM32定时器之PWM 4路输出 TIM3、TIM14
    STM32定时器 TIM14之PWM 可调脉宽输出 呼吸灯
  • 原文地址:https://www.cnblogs.com/zhengyihan1216/p/6095543.html
Copyright © 2020-2023  润新知