zoukankan      html  css  js  c++  java
  • 元素操作、定位方法,鼠标,键盘事件

    常用定位方法有:

    id

    name

    class name

    tag name

    link text

    partial link text

    xpath

    css selctor

    对应的方法:

    find_element_by_id("kw")

    find_element_by_name("name")

    find_element_by_class_name("name")

    find_element_by_tag_name("input")

    find_element_by_link_text("贴吧")

    find_element_by_partial_link_text("")

    find_element_by_xpath("/html1/body/div[2]/form/span/input")#绝对路劲

    find_element_by_xpath("//input[@id='input']")#通过自身的ID定位属性

    find_element_by_xpath("//sapn[@id='input-container']/input")#通过上一级ID定

    find_element_by_xpath("//div[@id='hd']/from/sapn/input")#通过上三级ID定位

    find_element_by_xpath("//div[@id='hd'] or @name='q']")

    find_element_by_css_selector(div#eleid)#id为eleid

    操作测试对象

    clear()#清除输入框内容
    send_keys("xx")#向输入框输入内容
    send_keus(u"中文内容") #输入中文加u
    click()#单击内容
    submit()#提交表单

    WebElement接口常用方法

    返回元素尺寸
    
    szie = driver.find_element_by_id("kw").size #返回百度输入框的尺寸
    print size 
    #输出结果:
    {'width': 500, 'height': 22}
    
    text = driver.find_element_by_id("cp").text#返回百度底部备案信息
    print text
    #输出结果:
    ©2018 Baidu 使用百度前必读 意见反馈 京ICP证030173号  京公网安备11000002000001号arr
    result
    = driver.find_element_by_id("kw").is_displayed #回元素的结果是否可见,
    #返回True or false
    print result #输出结果: True

    鼠标事件

    ActionChains#类鼠标操作常用方法
    context_click()#右击
    double_click()#双击
    drag_and_drop#()拖动
    move_to_element()#鼠标悬停在一个元素上
    click_and_hold()#按下鼠标左键,在一个元素上
    
    引入ActionChains类
    from selenium.webdriver.common.action_chains.import ActionChains
    
    鼠标右击操作
    right = dirver.find_element_by_xpath("xx")#定位到需要右击的元素
    ActionChains(driver).context_click(right).perform()#对元素进行右击操作
    
    #ActionChains用于生成用户行为,将所有行为保存到ActionChains对象,通过perform去执行
    #perform 是ActionChains类提供的方法,需要与ActionChains配合使用
    
    鼠标双击操作
    double = driver.find_element_by_xpath("xx")#定位到需要双击的元素
    ActionChains(driver).double_click(double).perform() #双击操作
    
    鼠标拖放操作
    element = driver.find_element_by_name("xx")#定位鼠标原位置
    target = drivere.find_element_by_name("xx")#定位鼠标要移动的目标位置
    ActionChains(driver).drag_and_drop(elemtn,trager).perform()#执行移动的操作
    
    鼠标移动到元素上
    above = driver.find_element_by_xpath("xx")#定位鼠标移动到上面的元素
    ActionChains(driver).move_to_element(above).perfrom#移动鼠标到定位的元素上
    
    按下鼠标左键
    left = driver.find_element_by_xpaht("xx")#定位到左键按下的元素
    ActionChains(dirver).click_and_hold(left).perfrom

    键盘事件

    from selenium import webdriver
    from selenium.webdriver.common.keys import keys #引包keys包
    import time
    driver = webdriver.Ie()
    driver.get("http://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("selenium")#向输入框输入"selenium"
    time.sleep(3)#等待3秒为了更能看清变化
    driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)#去掉框同的mm
    driver.find_element_by_id("kw").send_keys(Keys.SPACE)#向输入框输入空格
    driver.find_element_by_id("kw").send_keys(u"教程")#向输入框输入"教程"
    driver.find_element_by_id_("kw").send_keys(Keys.CONTROL,"a")#全选输入框的内容
    time.sleep(3)
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"C")#复制全选内容
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"X")#剪贴全选内容
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"V")#粘贴内容
    driver.find_element_by_id("su").send_keys(Keys.ENTER)#通过键盘回车代替点击操作
    time.sleep(3)
    driver.quit()#关闭浏览器

    send_keys(Keys.BACK_SPACE)#删除键
    send_keys(Keys.SPACE)#空格键
    send_keys(Keys.TAB)#制表键
    send_keys(Keys.ESCAPE)#回退键
    send_keys(Keys.ENTER)#回车键
    send_keys(Keys.CONTROL,"a")#全选
    send_keys(Keys.CONTROL,"C")#复制
    send_keys(keys.CONTROL,"V")#粘贴
    send_keys(Keys.CONTROL,"X")#剪切
    注:(keys类所提供的所有按钮请查阅 webdriver API)
  • 相关阅读:
    Wintellect的Power Collections库
    rabbitMQ的几种工作模式
    解决死锁问题
    项目#editormd 的使用
    spring cloud篇#1
    科学#老鼠和毒药
    #杂记#实现一个简单的tomcat
    #栈#leetcode856.括号的分数
    #栈#单调栈#leetCode94.验证栈序列
    #树#遍历#LeetCode37.序列化二叉树
  • 原文地址:https://www.cnblogs.com/guog1/p/8475465.html
Copyright © 2011-2022 走看看