Selenium WebDriver

Selenium WebDriver

安装Selenium WebDriver Java客户端

1.到https://docs.seleniumhq.org/download/下载
选择相应语言java
2.下载后解压
3.到eclipse新建java project
4.在src文件下新建class
5.在project右键——>properties
6.左侧选择java build path
7.切换到Libraries 选项卡,然后单击“Add External JARs” 按钮。
8.选择刚刚那个解压的文件,将下面两个图的jar包分别导入,然后选择Apply and Close 。
9.打开网址https://github.com/mozilla/geckodriver/releases选择相应版本下载,下载后解压。
在这里插入图片描述
在这里插入图片描述

安装geckodriver

https://github.com/mozilla/geckodriver/releases
去下载对应系统的文件
该exe文件用于火狐浏览器驱动

常用命令

获取网页

获取网页有两种方法:

 driver.get("www.yiibai.com");//使用Get方法
 driver.navigate().to("https://yiibai.com/selenium/");//使用Navigate方法

查找表单并发送用户输入

driver.findElement(By.id("kw")).sendKeys("aaaa");//查找id="kw",并且输入aaaa

清除用户输入

clear()方法用于从文本框中清除用户输入。

driver.findElement(By.name("q")).clear();

通过Web元素获取数据

有时需要获取通过web元素写入的文本来执行某些断言和调试。使用getText()方法来获取通过任何web元素写入的数据。

driver.findElement(By.id("element567")).getText();

执行Click事件

click()方法用于对任何Web元素执行单击操作。

driver.findElement(By.id("btnK")).click();

在浏览器历史记录中向后导航

driver.navigate().back();

在浏览器历史记录中向前导航

driver.navigate().forward();

刷新/重新加载网页

driver.navigate().refresh();

关闭浏览器

driver.close();

关闭浏览器和与驱动程序关联的其他所有其他窗口

driver.quit();

在Windows之间移动

driver.switchTo().window("windowName");

在 frame 之间移动

driver.switchTo().frame("frameName");

拖放

使用Action类执行拖放操作。

WebElement element = driver.findElement(By.name("source"));  
WebElement target = driver.findElement(By.name("target"));  

将网页向下滚动5000像素

        JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("scrollBy(0, 100)");

例子

打开教务系统网址,输出title,输入账号密码,点击登录。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.GeckoDriverService;
public class First {
	 public static void main(String[] args) {
	        // declaration and instantiation of objects/variables
	        System.setProperty("webdriver.gecko.driver", "D:\\桌面\\geckodriver-v0.29.1-win64\\geckodriver.exe");
	        System.setProperty("webdriver.firefox.bin", "D:\\软件\\浏览器\\Mozilla Firefox\\firefox.exe");
	        //WebDriver是一个接口,后面FirefoxDriver,ChromeDriver都是类
	        WebDriver driver = (WebDriver) new FirefoxDriver();//火狐浏览器    实例化类。
			driver = new ChromeDriver();//谷歌浏览器
	        driver.get("http://121.251.136.136/jwglxt/xtgl/login_slogin.html");//通过get方法获取网页
	        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);/
	        String titile = driver.getTitle();//获取title值
	        System.out.println("title is => " + titile);        
	        driver.findElement(By.id("yhm")).sendKeys("11111");	//找到id为yhm,输入值        
	        driver.findElement(By.id("mm")).sendKeys("111111");
	        driver.findElement(By.id("dl")).click();//找到id为dl,点击
	        try {
	            Thread.sleep(3000);
	        } catch (InterruptedException e) {
	            // TODO Auto-generated catch block
	            e.printStackTrace();
	        }
	        //driver.quit();
	    }
	}
	

定位策略

在这里插入图片描述

navigate()

navigate().to():

和get()方法基本相同,都是用来打开指定的网页地址

//使用navigate.to打开指定网页地址:百度新闻
driver.navigate().to("http://news.baidu.com/");

navigate().back()

当在同一个窗口打开2个以上的页面后,浏览器的前进和后退按钮就可以使用了,见上图标注。navigate().back()指回退到上一个页面。

//使用navigate.back返回到百度新闻页
driver.navigate().back();

navigate().forward()

navigate().forward()指前进到下一个页面,相当于点击浏览器栏的前进按钮,见上图标注。

//使用navigate.forward返回到百度国内新闻页
 driver.navigate().forward();

navigate().refresh()

这个很好理解,就是简单的刷新当前页面。

比如有的页面在增加一条记录后没有自动刷新,看不到新增的记录,此时可以用navigate().refresh()进行刷新。

 //使用navigate.refresh刷新当前页面
  driver.navigate().refresh();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值