zoukankan      html  css  js  c++  java
  • Selenium+Python3的web自动化测试(三)

    本文章内容参考了白夜黑羽教python的教程,出处为http://www.python3.vip/doc/tutorial/selenium/01/

    感谢上方大佬!

    所整理的正文如下:

    首先,在搭建好Selenium+Python3的环境基础上,测试要点如下:

    1.切入html内嵌的html中(测试页面http://f.python3.vip/webauto/sample2.html

     1 #先根据源码中内嵌html的属性值(id或name),进入这个内嵌的html,进行操作
     2 wd.switch_to.frame('frame1')
     3 
     4 #进入后的操作,例如根据class name 选择元素,返回一个列表
     5 elements = wd.find_elements_by_class_name('plant')
     6 for element in elements:
     7     print(element.text)
     8 
     9 #操作结束后要返回到主html,进行其他操作
    10 wd.switch_to.default_content()
    11 wd.find_element_by_id('outerbutton').click()
    12 wd.quit()

    2.点击主html内的链接,切换到新的窗口(测试页面http://f.python3.vip/webauto/sample3.html

    #首先在前面要有一个click操作,打开一个新的页面
    for handle in wd.window_handles:
        wd.switch_to.window(handle)
        if 'Bing' in wd.title:
            break
    
    #wd.window_handles包含了打开的窗口中所有网页的标号(类似ID的)信息,称为句柄
    #wd.switch_to.window(handle)是进入每一个窗口,检查其属性(可以是标题栏,地址栏)
    #通过判断找到所需窗口后,跳出循环,然后在for循环外,对这个所需窗口进行操作
    
    #返回主html的方法1.如同刚才,用handle判断回去;2.事先保存主html的句柄,最后返回
    
    #事先保存
    mainWindow = wd.current_window_handle
    #最后返回
    wd.switch_to.window(mainWindow)

    3.选择框的点击--radio框(测试页面http://f.python3.vip/webauto/test2.html

    # 获取当前选中的元素(缺省选择)
    element = wd.find_element_by_css_selector('#s_radio input[checked=checked]')
    print('当前选中的是: ' + element.get_attribute('value'))
    
    #点击选小雷老师
    wd.find_element_by_css_selector('#s_radio input[value="小雷老师"]').click()
    
    
    #源码中checked="checked"表示这个是默认选项

    4.选择框的点击--checkbox框

    # 先把已经选中的选项全部点击一下,确保所有选项都是未选状态
    elements = wd.find_elements_by_css_selector('#s_checkbox input[checked="checked"]')
    
    for element in elements:
        element.click()
    
    # 再点小雷老师
    wd.find_element_by_css_selector("#s_checkbox input[value='小雷老师']").click()

    5.选择框的点击--select框(有专门的类提供操作方法)

    """Select单选框"""
    #不管原来选的是什么,直接用Select方法选择即可。例如,选择示例里面的小雷老师
    # 导入Select类
    from selenium.webdriver.support.ui import Select
    # 创建Select对象
    select = Select(wd.find_element_by_id("ss_single"))
    # 通过 Select 对象选中小雷老师
    select.select_by_visible_text("小雷老师")
    
    """Select多选框"""
    #要选中某几个选项,要注意去掉原来已经选中的选项。例如,我们选择示例多选框中的 小雷老师 和 小凯老师
    # 导入Select类
    from selenium.webdriver.support.ui import Select
    # 创建Select对象
    select = Select(wd.find_element_by_id("ss_multi"))
    # 清除所有 已经选中 的选项
    select.deselect_all()
    # 选择小雷老师 和 小凯老师
    select.select_by_visible_text("小雷老师")
    select.select_by_visible_text("小凯老师")
    
    """Select主要方法及简单说明"""
    #根据选项的 value属性值 ,选择元素。比如<option value="foo">Bar</option>
    s.select_by_value('foo')
    #根据选项的 次序 (从1开始),选择元素
    select_by_index
    #根据选项的 可见文本 ,选择元素。比如<option value="foo">Bar</option>
    select_by_visible_text('Bar'#根据选项的value属性值, 去除 选中元素
    deselect_by_value
    #根据选项的次序,去除 选中元素
    deselect_by_index
    #根据选项的可见文本,去除 选中元素
    deselect_by_visible_text
    #去除 选中所有元素
    deselect_al
  • 相关阅读:
    Python Day 24 类属性与对象属性、初始化方法init、绑定方法与非绑定方法、OOP三大特性之继承、抽象与继承、存在继承关系后的属性查找、派生与覆盖、子类中重用父类的方法
    Python Day 23 xml模块 、面向对象
    Python Day 22 configparser模块、subprocess模块、xlrd模块、xlwt模块
    LeetCode 两个数之和
    python ATM + 购物车
    python Day 19 random、json、pickle、hashlib、hmac、shutil、shelve
    Python Day 18 time模块、datetime模块、os模块、os.path模块
    解释型语言和编译型语言的区别
    GCC和G++区别
    安装python+setuptools+pip+nltk
  • 原文地址:https://www.cnblogs.com/RuiRuia/p/12172015.html
Copyright © 2011-2022 走看看