• selenium常用操作


    键盘事件

      send_keys可以用来模拟键盘输入

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys  #导入keys类
    
    driver=webdriver.Chrome()
    driver.get('http://www.baidu.com')
    
    driver.find_element_by_id('kw').send_keys('python')
    # 通过回车键代替click
    driver.find_element_by_id('su').send_keys(Keys.ENTER)
    driver.quit()
    send_keys(Keys.BACK_SPACE)  #删除键(BackSpace)
    
    send_keys(Keys.SPACE) #空格键(Space)
    
    send_keys(Keys.TAB) #制表键(Tab)
    
    send_keys(Keys.ESCAPE) #回退键(Esc)
    
    send_keys(Keys.ENTER) #回车键(Enter)
    
    send_keys(Keys.CONTROL,‘a’) #全选(Ctrl+A)
    
    send_keys(Keys.CONTROL,‘c’) #复制(Ctrl+C)
    
    send_keys(Keys.CONTROL,‘x’) #剪切(Ctrl+X)
    
    send_keys(Keys.CONTROL,‘v’) #粘贴(Ctrl+V)
    
    send_keys(Keys.F1)# 键盘 F1
    
    send_keys(Keys.F12) #键盘 F12
    常用键盘操作

    鼠标操作

      Action Chains提供了鼠标操作的常用方法

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    
    driver = webdriver.Chrome()
    driver.get('http://www.baidu.com')
    
    link_element = driver.find_element_by_link_text('更多产品')
    ActionChains(driver).move_to_element(link_element).perform()
    perform()  #执行ActionChains中存储的行为
    context_click()  #右击
    double_click()  #双击
    drag_and_drop()   #拖动
    move_to_element  #鼠标悬停
    常用鼠标操作

    浏览器操作

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
    f_url = 'http://www.baidu.com'
    driver.get(f_url)
    
    s_url = 'http:news.baidu.com'
    driver.get(s_url)
    
    driver.back()  #退回到f_url
    driver.forward()   #前进到s_url
    
    driver.refresh()  #刷新页面
    
    driver.set_window_size(400,500)  #设置浏览器大小

    元素等待

      time.sleep()

      让程序强制等待一定时间,等待后继续运行

      implicitly_wait()

      它并不针对页面上的某一元素进行等待,当脚本执行到某个元素定位时,如果可以定位元素,则继续执行,如果元素无法定位,则driver会不断的判断元素是否被定位到。若超出implicitly_wait()设置的超时时间,则抛出异常

    from selenium import webdriver
    from selenium.common.exceptions import NoSuchElementException
    
    driver = webdriver.Chrome()
    
    driver.implicitly_wait(10) #全局设置,在整个程序的运行过程中都会有效
    driver.get('http://www.baidu.com')
    try:
        driver.find_element_by_id('kw123').send_keys('123')
    except NoSuchElementException as e:
        print(e)
    finally:
        driver.quit()

      WebDriverWait()

      等待某个条件成立时则继续执行,否则超时就抛出异常

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver = webdriver.Chrome()
    driver.get('http://www.baidu.com')
    
    ele = WebDriverWait(driver,5,0.5).until(
        EC.presence_of_element_located((By.ID,'kw'))
    )
    ele.sen_keys('python')
    driver.quit()

       webDriverWait类是由WebDriver提供的等待方法

    WebDriverWait(driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None)

      webDriverWait()一般由until()或until_not()方法配合使用  

  • 相关阅读:
    不要忘了你曾经会写sql的
    一个定期压缩、删除过期数据的emp脚本
    xcode中如何安装多个版本的模拟器
    Xcode4.4中,代码无法高亮、无法自动补全
    xml有哪些解析技术?区别是什么?
    XML有哪些解析方式有何优缺点?xml有哪些解析技术?区别是什么?
    ASIHttpRequest网络请求第三方类库使用方法详解
    iPhone中如何判断当前相机是否可用
    NSArray 跟 NSMutableArray 使用 区别
    通常我们使用[NSDate date]方法得到的时间与当前时间不一致,如何解决?
  • 原文地址:https://www.cnblogs.com/iamluoli/p/9282733.html
Copyright © 2020-2023  润新知