selenium 入门方法总结

一.使用环境 ecplise+jdk1.8+selenium+junit

  1. 下载安装导入环境 https://www.cnblogs.com/Nancy-Lee/p/10986324.html
  2. maven项目依赖

<dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.8.1</version>
 </dependency>

3.下载安装对应的浏览器驱动文件,对应的浏览版本下载对应驱动版本文件
chrome驱动参考
https://jingyan.baidu.com/article/f7ff0bfcdd89ed2e27bb1379.html

//加载对应浏览器驱动方法


System.setProperty("webdriver.chrome.driver", "D:\\chromedriver\\chromedriver_win32\\chromedriver.exe");

二.selenium之元素定位
1.selenium有八中方法定位元素id,name,class name,link text,xpath,css selector,tag name ,partial link text

一般常用的是就是id 、name、xpath 。
id、name、class元素在页面input标签中可以看到 ,前端页面不规范可以没有对应值。
XPath定位元素的方法有很多中,这里介绍一种最简单粗暴的:
那就是利用浏览器调试功能,定位到元素所在的那一行右键–>Copy–>Copy XPath

三.selenium之事件操作
1.selenium最常用的事件
findElement(by.by).clear(); 清除定位元素内容,一般是操作文本、密码框等
findElement(by.by).sendKeys(); 输入内容,一般操作文本、密码框 等
findElement(by.by).click() ;通用点击事件
findElement(by.by).submit(); 提交事件 ,仅针对submit使用,button不能使用。

2.单选框

 WebElement  Radio  =driver.findElement(By.id("id")); //定位到对应元素
   Radio.click();  //直接点击
   Radio.clear();  //清空单选

3.多选框
定位到对应选择的多选框的内容,直接点击选中

 WebElement checkbox1 =driver.findElement(By.id("id_01"));//定位到元素
   WebElement checkbox2 =driver.findElement(By.id("id_02"));
   checkbox1.click();  //多选
   checkbox2.click();

4.选择下拉框
下拉框选择 需要先new一个Select对象,然后对它进行操作

 Select select= new Select(driver.findElement(By.id(" "))); 
 select.selectByVisibleText("内容");//对应选择框的内容。

5.页面跳转
一个页面对应一个句柄,页面之见相互切换,可以使用句柄进行跳转
使用getWindowHandle()获取到当前页面的句柄
getWindowHandles() 获取所用页面句柄返回的是set集合(无序),只能打开一个页面就去获取对应的句柄。


driver.switchTo().window(handle);//使用句柄相互跳转页面

一个页面有内嵌iframe 页面,直接使用findElement是不能定位到iframe 标签内的元素,需要使用switchto(),
跳转到iframe 内嵌的页面中,才能使用findElement 定位到对应的元素。

6.设置等待超时时间
设置默认超时时间 隐式等待 、显式等待、 sleep
隐式等待

 manage().timeouts().implicitlyWait();

创建driver的时候直接全局申明等待时间。指定时间内不断刷新找到对应元素
显式等待 ,直接针对指定的元素 进行等待
sleep() 强制加载,直接中断了进程,阻断进程这样对于测试存在一点风险,不太建议使用


 public void Chrome() {
      System.setProperty("webdriver.chrome.driver", "D:\\chromedriver\\chromedriver_win32\\chromedriver.exe");
      ChromeDriver driver = new ChromeDriver();
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      driver.manage().window().maximize();
      driver.get("https://www.baidu.com");  
      driver.findElementById("kw").sendKeys("username");
     driver.findElement(By.id("su")).click();
     System.out.println(driver.getWindowHandle());
	

四.selenium 静默访问
不用打开浏览器,直接在后台访问地址, 对网页操作。
new ChromeOptions().addArguments("–headless")

 System.setProperty("webdriver.chrome.driver", "D:\\chromedriver\\chromdriver_win32_85\\chromedriver.exe");
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--headless");
    WebDriver driver = new ChromeDriver(chromeOptions);   
    driver.get("http://www.baidu.com");
    driver.findElement(By.id("kw")).sendKeys("天气");
    driver.findElement(By.id("su")).click();
    System.out.println(driver.getTitle());
    driver.getCurrentUrl();
    System.out.println(driver.getCurrentUrl());

五.无痕浏览

  chromeOptions.addArguments(" --incognito");
  // --incognito  无痕浏览  、--headless静默启动

浏览器不展示 “chrome正受到自动测试软件的控制”的信息 ,使用disable-infobars
不过谷歌新版本中该属性已经被废弃。不能再使用。可以使用下面的方法再去设置

  ChromeOptions chromeOptions = new ChromeOptions();
  chromeOptions.setExperimentalOption("excludeSwitches", new String[]{"enable-automation"});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值