selenium(一)

环境搭建

selenium-server-standalone.jar的下载地址

http://selenium-release.storage.googleapis.com/index.html

使用chrome浏览器需要下载对应版本的chromedriver驱动文件,firefox的不用下驱动但是selenium版本跟浏览器有对应要求

http://chromedriver.storage.googleapis.com/index.html

public static void main(String[] args) {
		System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
		WebDriver driver=new ChromeDriver();
		driver.get("https://blog.csdn.net");
	} 

控制浏览器 

//最大化
driver.manage().window().maximize();
//指定大小
driver.manage().window().setSize(new Dimension(400, 500));
//刷新
driver.navigate().refresh();
//后退
driver.navigate().back();
//前进
driver.navigate().forward();
//关闭
driver.quit();

定位、操作元素

driver.findElement(By.id("id的值"));
driver.findElement(By.name("name的值"));
driver.findElement(By.linkText("链接的全部文字"));
driver.findElement(By.partialLinkText("链接的部分文字"));
driver.findElement(By.xpath("xpath表达式"));
driver.findElement(By.cssSelector("css表达式"));
driver.findElement(By.className("class属性"));
driver.findElement(By.tagName("标签名称"));
		
/**
操作元素的方法:
*  sendKeys("要输入的文字")
*  click()
*  submit()
*  clear()
*/
		

通过css表达式:

//通过class属性定位
findElement(By.cssSelector(".s_ipt"));
//通过id属性定位
findElement(By.cssSelector("#kw"));
//通过标签名定位
findElement(By.cssSelector("input"));
//通过父子关系定位
findElement(By.cssSelector("span>input"));
//通过属性定位
findElement(By.cssSelector("input[maxlength='100']"));

https://www.cnblogs.com/sylvia-liu/p/4469597.html

下拉框识别和操作

public void selectDemo() {
	Select s=new Select(driver.findElement(By.id("id")));
	s.selectByIndex(1);
	s.selectByValue("12");
	s.selectByVisibleText("yy");
}
	

alert弹框

public void alertDemo() {
	driver.findElement(By.id("confirm")).click();
	driver.switchTo().alert().accept(); //dismiss
}
	

多窗口切换

public void windowsDemo() throws InterruptedException {
		 WebDriver driver=new ChromeDriver();
		 driver.get("https://blog.csdn.net");
		//获取当前窗口的句柄
		String curr_handle=driver.getWindowHandle();
		System.out.println("当前窗口title:"+driver.getTitle());
		//跳到一个新窗口
		driver.findElement(By.linkText("iOS使用动画连贯过渡界面转换")).click();
		//获取所有页面的句柄,并循环判断不是当前的句柄
		for(String h:driver.getWindowHandles()) {
			if(!h.equals(curr_handle)) 
				driver.switchTo().window(h);		
		}
		System.out.println("当前窗口title:"+driver.getTitle());
		//再次切换回原来的父窗口
		driver.switchTo().window(curr_handle);
		System.out.println("当前窗口title:"+driver.getTitle());
		Thread.sleep(5000);
	}

文件上传

http://blog.51cto.com/xqtesting/1958454

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值