Selenium01

1:selenium

Selenium主要用于web应用程序自动化测试,Selenium直接运行在浏览器中,就像实际用户在操作浏览器

三大功能:

  • Selenium Webdriver,最重要的模块
  • Selenium IDE,录屏,将网页上的操作过程录制为测试用例并能导出测试脚本
  • Selenium Grid,分布式测试

selenium特点:

  • 功能强大
  • 跨平台,Windows、linux、Mac
  • 支持多种浏览器:Chrome、Firefox、Safari、Opera、IE、Edge等
  • 支持多种开发语言:Python、Java、C#、Ruby,JavaScript
  • 简单、灵活
  • 支持分布式测试

安装Python的selenium模块:

pip install selenium

浏览器驱动下载:

  • 从镜像网站(https://registry.npmmirror.com/binary.html)查找对应的版本号链接
  • 将下载到的zip文件保存到任何一个PATH环境变量指定的目录(安装python解释器时已将其路径添加到PATH了,可以放到此路径下)下解压缩即可。

导入依赖:

from selenium import webdriver
from selenium.webdriver.common.by import By

创建浏览器对象:

driver = webdriver.Chrome()

get方法打开指定页面:

driver.get('http://www.baidu.com')

关闭

# 关闭浏览器窗口,进程也会存在驱动运行
driver.close()
# 退出浏览器驱动
driver.quit()

2:八大定位方式

  • ID定位

    • driver.find_element(By.ID, 'kw').send_keys('selenium')#文本框输入
      driver.find_element_by_id('su').click()#点击
      
  • NAME定位

    • driver.find_element(By.NAME,'wd').send_keys('西安天气')
      
  • CLASS_NAME定位

    • driver.find_element(By.CLASS_NAME,'el-icon-arrow-down').click()
      
  • TAG_NAME定位

    • driver.find_element(by=By.TAG_NAME,value='input')
      
  • LINK_TEXT定位

    • driver.find_element(by=By.LINK_TEXT,value='新闻').click()
      
  • PARTIAL_LINK_TEXT定位

    • driver.find_element(by=By.PARTIAL_LINK_TEXT,value='新').click()
      
  • XPATH定位

    • #绝对Xpath
      driver.find_element(by=By.XPATH,value='/html/body/div[1]/div[1]/div[5]/div[1]/div/form/span[1]/input').send_keys('SDK')
      #相对Xpath
      driver.find_element(by=By.XPATH,value='//*[@id="kw" and @name="wd"]').send_keys("sdk")
      #利用属性进行定位    @ 选取属性,id为一个属性,=后面是属性的值 属性之间可以进行逻辑运算 and or not
      driver.find_element_by_xpath('//*[@name="wd" and @class="s_ipt"]')
      #利用文本精确定位
      driver.find_element_by_xpath('//*[text()="新闻"]')
      #利用文本模糊定位
      driver.find_element_by_xpath('//*[contains(@value,"百度")]')
      
  • CSS_SELECTOR定位

    • driver.find_element(by=By.CSS_SELECTOR,value='#kw').send_keys("sdk")
      

3:常用API

获取属性:

element.get_attribute('href')
element.get_attribute('value')

获取文本:

element.text

窗口最大化:

driver.maximize_window()

窗口最小化:

driver.minimize_window()

获取窗口句柄:

driver.window_handles

切换到指定窗口:

driver.switch_to.window(handles[1])

进入iframe:

driver.switch_to.frame(iframe)

退出iframe:

driver.switch_to.parent_frame()

关闭当前窗口:

driver.close()

退出浏览器:

dirver.quit()

后退/前进/刷新:

driver.back()
driver.forward()
driver.refresh()

配置无框浏览器:

ops = webdriver.ChromeOptions()
ops.add_argument('headless')
driver = webdriver.Chrome(options=ops)

左键单击:

ActionChains(driver).click(element).perform()

右键单击:

ActionChains(driver).context_click(input).perform()

左键双击:

ActionChains(driver).double_click(back).perform()

鼠标悬停:

ActionChains(driver).move_to_element(more).perform()

键盘操作:

#回车
input.send_keys(Keys.ENTER)
#ctrl+a
input.send_keys(Keys.CONTROL, 'a')
#ctrl+c
input.send_keys(Keys.CONTROL, 'c')
#ctrl+v
input.send_keys(Keys.CONTROL, 'v')

断言:

assert 条件 ,"断言失败信息"

下拉框选择:

#索引值选择
Select(select).select_by_index(index)
#value值选择
Select(select).select_by_value(select_value)
#text文本选择
Select(select).select_by_visible_text(text)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值