51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1778|回复: 0
打印 上一主题 下一主题

Selenium的使用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-2-24 17:13:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
selenium自动化

特性:
- 可对多个浏览器进行自动化测试,如:Firefox、IE、Chrome
- 支持多种语言,如:Java、Python、C#、PHP、Ruby、Perl
- 支持跨操作系统的自动化测试,如:windows、linux、MAC
- 具有跨平台性
- 开源免费

B/S 是属于web功能自动化测试工具,基于Firefox,当Firefox更新时,selenium也随之更新,selenium
支持最近的Firefox两个版本,现主流的Firefox版本为44.0,相对应的selenium版本为2.53.0

如何使用selenium

selenium定位元素

XPath

相对路径:

//div[@id=’pass-id’]

//相对路径
div标签/div元素
[@] @后面跟的所有都是属性
[@属性 = ‘属性值’]
查找 相对路径下 所有的div 标签中 属性是id = ‘pass - id’ 的标签

//*[@class=’name’]

//相对路径
*代表所有的
查找 相对路径下 所有的 标签中 属性是class = ‘name’ 的标签
绝对路径

.//*[@id=’ECS_MEMBERZONE’]/a[1]/img

*当前位置
// 相对路径
/ 包含关系
查找 当前位置 相对路径下 所有的 标签中 属性是id=’ECS_MEMBERZONE’ 的标签 找到这个元素
以后 包含的第一个a标签 包含的img标签

绝对路径

html/body/div[6]/div[1]
XPath使用步骤

1.创建火狐浏览器的对象
2.通过对象名.方法名 打开被测系统
3.查找定位元素实现功能
4.关闭被测系统

代码演示:
  1. package XPath1;

  2. import org.openqa.selenium.By;
  3. //导入WebDriver和FirefoxDriver包
  4. import org.openqa.selenium.WebDriver;
  5. import org.openqa.selenium.firefox.FirefoxDriver;

  6. public class Demo {

  7.     public static void main(String[] args) {

  8.         //创建对象
  9.         WebDriver d = new FirefoxDriver();

  10.         //对象名.方法名
  11.         d.get("http://192.168.1.102/ecshop/");

  12.         //1.定位元素
  13.         //.//*[@id='ECS_MEMBERZONE']/a[1]/img
  14.         //By.xpath("//*[@id='ECS_MEMBERZONE']/a[1]/img");

  15.         //2.查找元素的方法
  16.         //d.findElement(By.xpath("//*[@id='ECS_MEMBERZONE']/a[1]/img"));

  17.         //3.找到该元素动作
  18.         //首页点击登录
  19.         d.findElement(By.xpath("//*[@id='ECS_MEMBERZONE']/a[1]/img")).click();

  20.         //会员登录输入用户名
  21.         d.findElement(By.xpath("html/body/div[7]/div[1]/form/table/tbody/tr[1]/td[2]/input")).sendKeys("abcd");

  22.         //会员登录输入密码
  23.         d.findElement(By.xpath("html/body/div[7]/div[1]/form/table/tbody/tr[2]/td[2]/input")).sendKeys("123456");

  24.         //点击登录
  25.         d.findElement(By.xpath("html/body/div[7]/div[1]/form/table/tbody/tr[4]/td[2]/input[3]")).click();   

  26.         //4.关闭被测系统
  27.         d.quit();      
  28.     }
  29. }
复制代码
下拉列表的三种方法
  1. //第一种方法
  2. //一个下拉列表的插件
  3. Select s = new Select(d.findElement(By.xpath("//*[@id='category']")));

  4. //对象名.selectByValue("值");
  5. s.selectByValue("2");

  6. //第二种方法
  7. //通过下标获取
  8. Select s = new Select(d.findElement(By.xpath("//*[@id='category']")));

  9. s.selectByIndex(2);

  10. //第三种方法
  11. //直接点开下拉列表选中其中一项右键获取地址
  12. //.//*[@id='category']/option[13]
  13. d.findElement(By.xpath("//*[@id='category']/option[13]")).click();
复制代码
CSS使用步骤
  1. package TestNG_Demo;

  2. import org.testng.annotations.Test;
  3. import org.testng.annotations.BeforeClass;
  4. import org.openqa.selenium.By;
  5. import org.openqa.selenium.WebDriver;
  6. import org.openqa.selenium.firefox.FirefoxDriver;
  7. import org.testng.annotations.AfterClass;

  8. public class CSS_Demo {
  9.     WebDriver s;

  10.   @BeforeClass
  11.   public void beforeClass() {
  12.       s = new FirefoxDriver();
  13.   }

  14.   @Test
  15.   public void f() {
  16.       s.get("http://192.168.1.102/ecshop/");
  17.       s.findElement(By.cssSelector("#ECS_MEMBERZONE>a>img[src*='log']")).click();
  18.       s.findElement(By.cssSelector(".inputBg[size='25']")).sendKeys("喵喵");
  19.       s.findElement(By.cssSelector(".inputBg[size='15']")).sendKeys("123456");
  20.       s.findElement(By.cssSelector(".us_Submit")).click();

  21.   }

  22.   @AfterClass
  23.   public void afterClass() {
  24.   }

  25. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-17 18:45 , Processed in 0.063352 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表