zoukankan      html  css  js  c++  java
  • selenium自动化测试之定位大全

    一、元素定位

    1、通过id进行定位
    find_element_by_id() 
    2、通过name进行定位
    find_element_by_name() 
    3、通过class进行定位,class有多重属性时,只取其中一个
    find_element_by_class_name() 
    4、通过标签进行定位
    find_element_by_tag_name() 
    5、通过文本进行定位
    find_element_by_link_text() 
    6、通过部分文本进行定位
    find_element_by_partial_link_text()  
    7、通过路径进行定位
    find_element_by_xpath() 
    8、通过css进行定位
    find_element_by_css_selector() 
    9、通过复数属性定位
    find_elements_by_xxx()[0] 

    二、鼠标事件
    1、右击
    context_click()
    2、双击
    double_click()
    3、拖动
    drag_and_drop(source,target)
    4、鼠标悬停
    move_to_element()

    例子:
    from selenium.webdriver.common.action_chains import ActionChains
    element = driver.find_element_by_name("name")
    ActionChains(driver).context_click(element).perform()

    三、键盘事件
    1、删除键
    send_keys(Keys.BACK_SPACE)
    2、空格键
    send_keys(Keys.SPACE)
    3、制表键
    send_keys(Keys.TAB)
    4、回退键
    send_keys(Keys.ESCAPE)
    5、回车键
    send_keys(Keys.ENTER)
    6、全选
    send_keys(Keys.CONTROL,'a')
    7、复制
    send_keys(Keys.CONTROL,'c')
    8、剪切
    send_keys(Keys.CONTROL,'x')
    9、粘贴
    send_keys(Keys.CONTROL,'v')
    10、键盘F1
    send_keys(Keys.F1)
    11、键盘F5
    send_keys(Keys.F5)
    12、键盘F12
    send_keys(Keys.F12)

    例子:
    from selenium.webdriver.common.keys import Keys
    driver.find_element_by_id("id").send_keys(Keys.CONTROL, 's')

    四、iframe定位
    1、通过iframe的id进行定位
    driver.switch_to.frame("id")
    2、没有id或id为动态变化值,通过标签定位
    iframe = driver.find_element_by_tag_name("iframe")
    driver.switch_to.frame(iframe)
    3、若标签不唯一,使用复数定位
    iframe = driver.find_elements_by_tag_name("iframe")[0]
    driver.switch_to.frame(iframe)
    4、索引定位,index
    driver.switch_to.frame(index)
    五、select定位
    例子:
    <select name="NR" id="nr">
    <option value="10" selected="">每页显示10条</option>
    <option value="20">每页显示20条</option>
    <option value="50">每页显示50条</option>
    </select>
    1、通过内容定位
    select_by_visible_text("每页显示50条") 

    2、通过索引定位,下表从0开始,值为数字
    select_by_index(1) 
    3、通过value值进行定位,值为字符串
    select_by_value("50") 

    六、alert定位
    问题:如何判断是否是alert弹框?
    回答:在浏览器中打开弹框,箭头定位不到元素的则是alert,能定位到的则不是alert,用普通定位
    步骤一:点击弹框按钮
    js='$(".prefpanelgo").click()'
    步骤二:执行js
    driver.execute_script(js)
    步骤三:切换到弹框窗口
    al=driver.switch_to.alert
    1、获取弹框上的文字
    print(al.text)
    2、点击确定
    al.accept()
    3、点击取消
    al.dismiss()
    4、输入框
    al.send_keys("输入内容")

    七、xpath定位
    1、通过id定位
    find_element_by_xpath(".//*[@id='xx']")
    2、通过tag标签定位
    find_element_by_xpath(".//input[@id='xx']")
    3、通过class定位
    find_element_by_xpath(".//*[@class='xx']")
    4、通过name定位
    find_element_by_xpath(".//*[@name='xx']")
    5、组合定位
    find_element_by_xpath(".//*[@id='xx' and @name='xx']")
    6、绝对路径定位
    find_element_by_xpath(".//*[@id='loginPanel']/div/table/tbody/tr[2]/td/input")
    7、相对路径定位
    find_element_by_xpath(".//*[@id='loginPanel']//tr[2]//input")
    8、文本定位
    find_element_by_xpath(".//*[text()='xxx']")
    9、模糊匹配定位
    .//*[contains(text(),'文本内容')]
    .//*[contains(@id,'xx')]
    10、模糊匹配以XX开头
    .//*[starts-with(@id,'xx')]
    .//*[starts-with(text(),'xx')]

    说明:
    1、 . 表示当前路径(可有可无)
    2、 // 表示相对定位,匹配后面内容所有项
    3、 * 表示获取全部标签
    4、 .. 回到上级目录,与cmd命令一致
    5、 and 连接两个属性

    八、css定位
    1、多个属性定位
    find_element_by_css_selector("input#xxx[name='']")
    2、层级定位
    find_element_by_css_selector("table>tr>td")
    3、复数定位,下标从1开始
    find_element_by_css_selector(".mnav:nth-child(1)")
    (1)通过id
    find_element_by_css_selector("#xxx")
    (2)通过class
    find_element_by_css_selector(".xxx")
    (3)通过标签
    find_element_by_css_selector("input")
    (4)通过其他属性
    find_element_by_css_selector("[name='xxx']")
    4、跨层级定位(爷爷、孙子)
    find_element_by_css_selector("[name='xxx']  [name='xxx']")


    九、元素获取
    1、获取文本
    .text()
    2、获取属性值
    .get_attribute()
    3、获取标签
    .tag_name()
    4、判断元素显示或隐藏
    .is_displayed()
    5、获取浏览器名称
    print(driver.name)
    6、获取元素size
    .size

    十、jquery定位
    1、发送文本值
    $("#kw").val("python")
    2、清空文本
    $("#kw").val("")
    3、点击
    $("#kw").click()

    十一、js定位
    1、通过id定位
    document.getElementById("id")
    2、通过name获取
    document.getElementsByName("name")[0]
    3、通过标签定位
    document.getElementsByTagName("button")
    4、通过class定位
    document.getElementsByClassName("classname")
    5、通过css选择器定位
    document.querySelectorAll("css selector")


    
    
  • 相关阅读:
    Quartz.net官方开发指南 第十一课: 高级(企业级)属性
    .NET开源项目:Tomboy
    开源的作业调度框架 Quartz.NET
    DinnerNow.net: 微软最新技术集成示例
    将Quartz.NET集成到 Castle中
    评论:微软的SOA战略
    行为驱动开发Behaviour Driven Development
    Mono 1.2.5 发布,提供对IronPython和DLR的支持
    Quartz.net官方开发指南 第二课:Jobs And Triggers
    数据库厂商提供的 Providers for ASP.NET
  • 原文地址:https://www.cnblogs.com/yudx/p/11225735.html
Copyright © 2011-2022 走看看