• UI自动化测试——alert


    一、alert

    text:获取弹出框的文本信息

    accept:接受Confirm弹出框

    dismiss:拒绝接受Confirm弹出框

    send_keys:在Prompt消息对话框里面输入想要输入的内容

    1、下拉选择框——Select类

    操作步骤

        1.1、先导入Select类

        1.2、对Select类进行实例化

        1.3、定位到下拉框的元素属性

        1.4、使用Select类进行实例化后的对象调用该类里面的方法

    实战步骤

    # 下拉框
    from selenium import webdriver
    # selenium、webdriver、support都是包,select是模块,Select是类
    from selenium.webdriver.support.select import Select import time
    driver
    =webdriver.Chrome() driver.maximize_window() driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/Python/index.html") # 选择框ID nr=driver.find_element_by_id("nr") # webelement指的是下拉框的元素属性对象 obj=Select(webelement=nr) time.sleep(2)
    # 有三种方式可以定位需要元素的信息,操作时选择一种 #
    1、索引 obj.select_by_index(1) # 2、文本 # obj.select_by_visible_text("Go语言") # 3、value # obj.select_by_value("Python") time.sleep(2)
    # 文本框中首先出现Python语言,其次出现Go语言 obj.select_by_index(
    2) time.sleep(4) driver.quit()

    2、弹出框:Alert类

    2.1、接受和拒绝接受

    from selenium import webdriver
    import time
    driver=webdriver.Chrome()
    driver.maximize_window()
    
    # 放置地址:D:\学习资料\Python
    driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/Python/%E7%A1%AE%E5%AE%9A%E6%B6%88%E6%81%AF.html")
    time.sleep(3)
    driver.find_element_by_tag_name("input").click()
    time.sleep(3)
    
    # 点击确定accept()
    driver.switch_to.alert.accept()
    time.sleep(3)
    
    # 页面刷新—refresh()
    driver.refresh()
    driver.find_element_by_tag_name("input").click()
    time.sleep(3)
     
    # 拒绝接受dismiss()
    driver.switch_to.alert.dismiss()
    time.sleep(3)
    driver.quit()

    2.2、警告框

    # 导入
    driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/Python/%E8%AD%A6%E5%91%8A%E6%A1%86.html")
    time.sleep(4)
    
    # witch_to:切换,alert:类
    print(driver.switch_to.alert.text)
    time.sleep(4)
    driver.quit()

    2.3、消息对话框

    # 消息对话框
    
    driver.get("file:///D:/%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/Python/%E6%B6%88%E6%81%AF%E5%AF%B9%E8%AF%9D%E6%A1%86.html")
    time.sleep(2)
    driver.find_element_by_tag_name("input").click()
    time.sleep(2)
    
    # 输入内容
    driver.switch_to.alert.send_keys("自动化测试")
    time.sleep(2)
    
    # 点击确定按钮
    driver.switch_to.alert.accept()
    time.sleep(2)
    
    # 刷新页面
    driver.refresh()
    driver.find_element_by_tag_name("input").click()
    time.sleep(2)
    driver.switch_to.alert.send_keys("自动化测试")
    time.sleep(2)
    driver.switch_to.alert.dismiss()
    time.sleep(4)
    driver.quit()

    二、iFrame框架

    1、遇到iFrame框架,解决思路是

    1、先进入到iframe的框架

    2、再定位框架中的元素属性

    怎么判断?

    当你使用了所有的元素定位的方式并且都是正确的,但就是提示找不到,那么查看源代码是否存在iFrame的框架。如果存在,通过三种方式就可以进入到iFrame的框架:

        1.1、ID

        1.2、索引

        1.3、name(基本不使用)

    2、实战操作——腾讯文件

    from selenium import webdriver
    import time as t
    
    driver=webdriver.Chrome()
    driver.maximize_window()
    driver.get("https://file.qq.com/")
    t.sleep(6)
    # 进入到第一层的iframe driver.switch_to.frame(
    "login_frame") t.sleep(2)
    # 进入到第二层的iframe driver.switch_to.frame(
    "ptlogin_iframe") t.sleep(2) driver.find_element_by_id("switcher_plogin").click() t.sleep(2) driver.find_element_by_id("u").send_keys('2256520569@qq.com') t.sleep(2) driver.quit()

    三、鼠标事件:ActionChains

    1、悬浮框

    # 导入后获取百度网址信息
    
    # 鼠标事件实例化
    obj=ActionChains(driver=driver)
    # 要定位的元素属性的对象 setting
    =driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[4]/span") obj.move_to_element(setting).perform()
    # 点击搜索设置 driver.find_element_by_xpath(
    "/html/body/div[1]/div[1]/div[4]/div[1]/div/a[1]/span").click() t.sleep(2) driver.quit()

     

    2、右键操作——context_click

    obj=ActionChains(driver=driver)
    
    #定义名称:so,执行:perform
    so=driver.find_element_by_id("kw") 
    obj.context_click(so).perform()
    t.sleep(
    2)
    driver.quit()

    3、双击操作——double_click()

    obj=ActionChains(driver=driver)
    t.sleep(6)
    driver.find_element_by_id("kw").send_keys("西安最新疫情")
    t.sleep(2)
    # 定义名称:soButton
    soButton=driver.find_element_by_id("su")
    obj.double_click(soButton).perform()
    t.sleep(2)
    driver.quit()
  • 相关阅读:
    c++ 文本处理
    c++ 汇编代码看内存分配
    c++ Message与Folder 拷贝 析构(没有动态空间的类)
    c++ StrVec等效vector(string)的类
    c++ istream_iterator ostream_iterator
    c++ 子类与父类之间的类型转换
    android中的空格表示
    ViewPager实现每隔两秒自动切换图片
    有关Android ListView根据项数的大小自动改变高度问题
    Android strings.xml中空格符的标识方法附xml特殊字符表示法
  • 原文地址:https://www.cnblogs.com/Kaylee/p/16113560.html
Copyright © 2020-2023  润新知