测试学习2----软件自动化测试Selenium2

测试学习2----软件自动化测试Selenium2

一、元素的定位

​ 1. 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这个人。

​ 那么一个对象也有类似的属性,我们可以通过这个属性找到这对象。

注意:不管用那种方式,必须保证页面上该属性的唯一性

​ 2. webdriver 提供了一系列的对象定位方法,常用的有以下几种:

  1. id

  2. name

  3. class name

  4. link text

  5. partial link text

  6. tag name

  7. xpath

  8. css selector

    `

    <input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">
    
    #coding=utf-8
    from selenium import webdriver
    import time
    browser = webdriver.Chrome()
    browser.get("http://www.baidu.com")
    #########百度输入框的定位方式##########
    #通过id 方式定位
    browser.find_element_by_id("kw").send_keys("selenium")
    #通过name 方式定位
    browser.find_element_by_name("wd").send_keys("selenium")
    #通过tag name 方式定位
    browser.find_element_by_tag_name("input").send_keys("selenium") 不能成功,因为input太多了不唯一。
    #通过class name 方式定位
    browser.find_element_by_class_name("s_ipt").send_keys("selenium")
    #通过CSS 方式定位
    browser.find_element_by_css_selector("#kw").send_keys("selenium")
    #通过xphan 方式定位
    browser.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")
    
    browser.find_element_by_id("su").click()
    time.sleep(3)
    browser.quit()
    

    `

二、操作测试对象

  1. 定位之后需要对这个原素进行操作。鼠标点击呢还是键盘输入,这要取决于我们定位的是按钮还输入框。

    一般来说,webdriver 中比较常用的操作对象的方法有下面几个:

    1. click 点击对象

    2. send_keys 在对象上模拟按键输入

    3. clear 清除对象的内容,如果可以的话

      browser.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")
      browser.find_element_by_xpath("//*[@id='su']").click()
      time.sleep(6)
      # 清除百度搜索框的内容
      browser.find_element_by_xpath("//*[@id='kw']").clear()
      browser.find_element_by_xpath("//*[@id='kw']").send_keys("JUnit")
      
    4. submit 提交对象的内容,表单

      browser.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")
      # submit == click
      browser.find_element_by_xpath("//*[@id='su']").submit()
      time.sleep(6)
      # 清除百度搜索框的内容
      browser.find_element_by_xpath("//*[@id='kw']").clear()
      browser.find_element_by_xpath("//*[@id='kw']").send_keys("JUnit")
      
  1. text 用于获取元素的文本信息
    text = browser.find_element_by_xpath("//*[@id='bottom_layer']/div/p[7]/span").text
    print(text)
    

三、添加等待

  1. 固定等待:time.sleep(3) 设置几秒钟等待几秒钟

  2. 智能能带:implicitly——wait(6) 等待的时间为0–6s

    browser.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")
    browser.find_element_by_xpath("//*[@id='su']").submit()
    # time.sleep(10)  # 固定等待
    browser.implicitly_wait(10)  # 智能等待
    browser.find_element_by_link_text("selenium - 百度翻译").click()
    

四、打印信息

  1. title
  2. URL

五、浏览器操作

  1. 最大化浏览器:browser.maximize_window()

  2. 最小化浏览器:browser.minimize_window()

  3. 设置浏览器宽高:browser.set_window_size(400, 800)

  4. 设置浏览器滚动条

    # 浏览器的滚动条拖动到最低端
    js = "var q=document.documentElement.scrollTop=10000"
    browser.execute_script(js)
    time.sleep(6)
    # 浏览器的滚动条拖动到最顶端
    js1 = "var q=document.documentElement.scrollTop=0"
    browser.execute_script(js1)
    time.sleep(3)
    

六、键盘事件

键盘按键用法

from selenium import webdriver
import time

from selenium.webdriver.common.keys import Keys

browser = webdriver.Chrome()
browser.get("http://127.0.0.1:88/biz/user-login-L2Jpei8=.html")
# 窗口最大化
browser.maximize_window()

# 输入用户名
browser.find_element_by_name("account").send_keys("admin")
# 用Tab键把光标移动到密码输入框
browser.find_element_by_name("account").send_keys(Keys.TAB)

time.sleep(8)
browser.find_element_by_name("password").send_keys("shijinze123456")
# ENTER键
browser.find_element_by_name("password").send_keys(Keys.ENTER)
time.sleep(8)
browser.quit()

键盘组合键

from selenium import webdriver
import time

from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
browser.maximize_window()

browser.find_element_by_id("kw").send_keys("中秋节")
browser.find_element_by_id("su").click()
browser.implicitly_wait(10)
# 键盘组合键
# ctrl+a 全选输入框内容
browser.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
time.sleep(4)
# ctrl+x 剪切输入框内容
browser.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')

# 输入框重新输入内容
time.sleep(4)
browser.find_element_by_id("kw").send_keys("端午节")
browser.find_element_by_id("su").click()
time.sleep(4)
browser.quit()

七、鼠标事件

ActionChains 类

  1. context_click() 右击

  2. double_click() 双击

  3. drag_and_drop() 拖动

  4. move_to_element() 移动

    from selenium import webdriver
    import time
    
    from selenium.webdriver import ActionChains
    
    browser = webdriver.Firefox()
    browser.get("http://www.baidu.com")
    browser.maximize_window()
    
    browser.find_element_by_id("kw").send_keys("迪丽热巴")
    # 定位‘百度一下’
    su1 = browser.find_element_by_id("su")
    
    # 右击
    ActionChains(browser).context_click(su1).perform()
    
    # 双击
    ActionChains(browser).double_click(su1).perform()
    
    browser.find_element_by_id("su").click()
    title = browser.find_element_by_id("su")
    target = browser.find_element_by_link_text("迪丽热巴 - 百度百科")
    # 拖动
    ActionChains(browser).drag_and_drop(title, target).perform()
    # 移动
    ActionChains(browser).move_to_element(target).perform()
    
    time.sleep(3)
    browser.quit()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值