zoukankan      html  css  js  c++  java
  • python-web自动化:按键操作

    #要用到的库:from selenium.webdriver.common.keys import Keys
    
    

      在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中(appium通用)常用的等待分为显示等待WebDriverWait()隐式等待implicitly_wait()强制等待sleep()三种,下面我们就分别介绍一下这三种等待的区别

    
    
    • sleep(): 强制等待,设置固定休眠时间。后脚本的执行过程中执行 sleep()后线程休眠,而另外两种线程不休眠。
    • implicitly_wait():隐式等待,是设置的全局等待。设置等待时间,是对页面中的所有元素设置加载时间,如果超出了设置时间的则抛出异常。隐式等待可以理解成在规定的时间范围内,浏览器在不停的刷新页面,直到找到相关元素或者时间结束。
    • WebDriverWait():显示等待,是针对于某个特定的元素设置的等待时间,在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s,默认抛出异常为:NoSuchElementException。


    # 组合键 - send-keys

    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By


    # 1、等待
    # 1、傻等 - 5 15
    import time
    time.sleep(2)

    # 智能等待 - 如果说你下一行的代码当中用到的元素,那我就设置一个等待极限。
    # 在这个极限范围之内,任何一个时间点元素出现了,就不等了,去执行下一行代码。

    # 2、隐性等待 implicitly_wait

    from selenium.webdriver.common.keys import Keys
    driver = webdriver.Chrome()
    driver.implicitly_wait(30) # 等待元素存在、命令执行完成

    driver.get("http://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("天气",Keys.ENTER)

    # 点击百度一下进行搜索,与执行ENTER回车键效果一样
    # driver.find_element_by_id("su").click()
  • 相关阅读:
    《计算机网络》总结
    【操作系统】死锁
    【操作系统】进程同步
    【操作系统】处理器调度
    【操作系统】总结二(进程与线程)
    【操作系统】总结一
    前缀、中缀、后缀表达式
    QMap
    Qt 常用的功能
    Qt 文件处理
  • 原文地址:https://www.cnblogs.com/xintiaoab/p/13691157.html
Copyright © 2011-2022 走看看