zoukankan      html  css  js  c++  java
  • selenium元素定位

    '''
    1.你的自动化是如何落地的? 遇到了什么难点
    2. 遇到哪些比较难定位的元素,你是如何定位的?
    3. 验证码问题你是如何解决的
    4. 你的自动化框架是如何设计的?
    '''
    
    """
    测试流程
        1). 立项-->文档-->代码编写-->单元测试-->测试准入-->功能测试-->性能测试-->集成测试-->测试报告-->上线部署-->线上回归
    什么时候开始自动化才是最好的时间点
        1). 测试准入-->自动化切入点1
        2). 集成测试-->自动化切入点2
        3). 线上回归-->自动化切入点3
    落地过程中具体难点有哪些
        1). 前端代码改动大,频繁或者不规范导致元素不好定位
        2). 自动化刚开始时,测试人员编码规范以及架构设计不统一
    """
    '''下拉框如何定位的'''
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get("https://www.jd.com")
    driver.set_window_size(600,800)
    # js 代码 滚动条滑动到最下方
    js = "window.scrollTo(10000,10000);"
    driver.execute_script(js)
    
    '''时间控件如何定位'''
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get("https://www.12306.cn/index/")
    # 把控件变成可输入的
    js = "document.getElementById('train_date').removeAttribute('readonly')"
    driver.execute_script(js)
    driver.find_element_by_id("train_date").clear()
    driver.find_element_by_id("train_date").send_keys("2019-5-1")
    
    '''web弹出提示框如何处理'''
    
    # 第一种页面弹框处理如:百度页面的登录
    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com")
    driver.find_element_by_link_text("登录").click()
    time.sleep(3)
    
    driver.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn").click()
    driver.find_element_by_id("TANGRAM__PSP_10__userName").send_keys("aaa")
    
    # 第二种浏览器自带弹出框定位
    
    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    driver.get("file:///D:/pycharm/Interface_new_2019-3-7_mooc/Util/test_message.html")
    # 操作系统弹框
    driver.find_element_by_id("alert").click()
    alert = driver.switch_to.alert
    time.sleep(2)
    alert.accept()
    
    driver.find_element_by_id("confirm").click()
    alert = driver.switch_to.alert
    time.sleep(1)
    alert.accept()
    
    driver.find_element_by_id("prompt").click()
    alert = driver.switch_to.alert
    time.sleep(1)
    alert.send_keys("aaaa")
    time.sleep(2)
    alert.accept()
    
    """如何切换控制浏览器句柄"""
    driver = webdriver.Chrome()
    driver.get("http://www.sohu.com/")
    
    window = driver.current_window_handle
    driver.find_element_by_link_text("新闻").click()
    windows = driver.window_handles
    
    for current_windows in windows:
        if current_windows != window:
            driver.switch_to.window(current_windows)
    
    # 也可以这样写(-1就是代表最新的)
    # driver.switch_to.window(windows[-1])
    
    time.sleep(2)
    driver.quit()
  • 相关阅读:
    mybatis逆向工程使用
    shiro凭证配置
    shiro基于ini文件入门案例
    springboot实现自定义mvc组件
    ssm整合activiti配置文件和依赖
    activiti网关分支设置
    HTML5新特性 websocket(重点)--多对多聊天室
    HTML5新特性--svg-echarts(重点)-拖动API-WebWorker
    HTML5新特性-- -定时器
    HTML新特性--canvas绘图-文本
  • 原文地址:https://www.cnblogs.com/jiyanjiao-702521/p/10775621.html
Copyright © 2011-2022 走看看