zoukankan      html  css  js  c++  java
  • selenium_06_课堂笔记

    用了等待用在所有窗口是之前
    
    没有用等待;是所有窗口之后
    
    web自动化面试题:报错;无法定位到元素,出现的原因可能有哪些?
    -1、元素定位的表达式是否正确 怎么确定:在浏览器中,检查找元素是否唯一 ctrl+f 
    -2、元素表达式是否正确,检查是否设置了等待 (隐性等待,sleep)
    -3、元素是否在另一个窗口(driver.window_handles)
    -4、是否在iframe里面(比如两种登方式:账号/密码;或者微信登录)检查元素/(ctrl+f) //iframe--看下
    -5、检查是否会(动态)自动变化(1、表达式是否会变化---需要替换表达式2、前端需要加载才会出现:比如:动态加载:滑动查能看到3、悬浮的定位方式:鼠标放在方面才会出现)
    
    
    注册验证码:
    1、先让开发关掉验证码
    2、开发设置万能验证码
    3、使用第三方的解码平台-超级鹰(接口)
    4、复杂的就没有办法搞(12306--人工都无法识别-机器也不行)
    
    vs code 或者pycharm专业版 webstom
    鼠标点击事件:on开头
    <h2 onclick = "myAlert">hello world</h2>
        onmouseover--鼠标悬浮
    <script>
    function myAlert()
        let name = "荒年";
        alert(name);
        if(name = 'xiuer'){
            alert(’秀儿跑路了‘);
        }else{
          alert("hello,world");
        }
    </script>
    
    dom对象:
    
    类和对象:
    一切皆为对象
    chrome()
    firefox()
    
    js--打开任意的窗口--封装为一个对象:
    窗口--叫做对象-window
    document对象的操作
    >> window.location ---获取某些属性(url为例)
    “”“--python的字符串
    ’‘’<html></html>‘’‘
    文档--document(dom-)文档变成对象
    整个html是一个对象:标签也是对象,可以用dom来调用
    元素;文本;属性---节点;注释--#注释节点
    >> document.body
    >> document.body.innerHTML ="hello world"
    >> el = document.getMyelemenById(”su“)
    >> el.click()
    >> el.className(”修改值“)
    >> el = docment.querySelector(”#kw“) -css选择器查找
    >> el = docment.get---类似python与八大元素find_elemont
    如何操作一个对象:--输入/点击
    开发部署远程代码--一次修改生效:
    -方法: 
    -属性:获取属性;修改属性
    对象的方法可以修改
    
    时间控件定位:
    控制台操作:自动化上是没用--使用与浏览器控制台
    >> $0.cilk---箭头符号的倒数第一个元素
    找不到日期输入:
    修改:value =”2021-3-10“--把readonly删掉
    >>input =docment.getelemnetbyid("train_date")
    
    >>input.readonly =false
    
    >>input.value ="2021-3-10"
    
    import time
    from selenium import webdriver
    
    driver = webdriver.chorme()
    driver.get("网站")
    # js 执行就是语句写上日期
    time.sleep(3)
    js_code ="let input =docment.getelemnetbyid("train_date");input.readonly =false;input.value ='2021-3-10'"
    time.sleep(3)
    # 可以把python和js混用
    input_elem = driver.find_element("id","train_date")
    time.sleep
    # 准备js 代码
    js_code =”arguuments[0].readonly=false;”arguuments[0].value = ’2021-03-22;‘”
    driver.execute_script(js_code,input_elem)
    
    time.sleep(3)
    
    # 窗口滚动--懒加载方式:
    --scrollBy--滚动--像素  500PX
    --scrollTo--滚动到 100PX
    #【反弹最新的话题加载出来导致】
    # 【0,500】
    >>window.scrollTo(0,500)#宽度不变;高度变化【上下滚动】
    #【最底部】
    >>windoe.scrollTo(0,body.scrollHeight)# 运行到窗口的最底部
    
    #【中间位置】
    >>windoe.scrollTo(0,body.scrollHeight/2)
    # 可视范围内--去点击
    比如友情链接:
    #找到需要定位的元素
    el = driver.find_element('xpath',"//h2[contains(text(),'友情链接')]")
    #滚动到可视范围内
    el.location_once_scrolled_into_view
    time.sleep(3# 文件上传
    # input 可以直接通过 send_keys 发送文件路径
    <input>id= "myfile"</input>
    f = driver.find_element('id','myfile')
    f.send_keys(r+文件路径)
  • 相关阅读:
    C系统,操作符和词法元素
    值类型和引用类型
    WPF
    C#版本进化
    快速排序
    C语言字符串
    查找
    简单快速排序
    PHP运行出现Notice : Use of undefined constant 的解决办法
    vs2010 修改注释模板
  • 原文地址:https://www.cnblogs.com/zhang-ping1205/p/14514588.html
Copyright © 2011-2022 走看看