Java + Selenium(十) 特殊窗口切换

特殊窗口切换


窗体分类:

  • iframe
    switchTo()
  • 弹窗
    switchTo()
    getWinfowHandles()
  • 对话框
package com.test.selenium;

import java.util.List;
import java.util.Set;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.Select;

public class ActionSelenium {
	public WebDriver driver;
	public String windowsHandle;
	
	public void InitDriver(){
		System.setProperty("webdriver.firefox.bin","C:\\Program Files\\Mozilla Firefox\\firefox.exe");
		driver = new FirefoxDriver();
		//driver.navigate().to("https://www.imooc.com/user/newlogin");
		driver.navigate().to("https://www.imooc.com/");
		driver.manage().window().maximize();
	}
	public void sleep(int x){
		try{
			Thread.sleep(x);
		}catch(InterruptedException e){
			e.printStackTrace();
		}
	}
	public void inputBox(){
		//driver.findElement(By.name("email")).sendKeys("895236987@qq.com");
		this.sleep(2000);
		//driver.findElement(By.name("email")).clear();
		//String s = driver.findElement(By.name("email")).getAttribute("placeholder");
		//System.out.println(s);
		driver.findElement(By.name("email")).sendKeys("895236987@qq.com");
		driver.findElement(By.name("password")).sendKeys("sss");
		//driver.findElement(By.className("moco-btn-red")).click();
		this.sleep(2000);
	}
	
	/**
	 * 单选框
	 * 
	 * */
	public void radioBox(){
		driver.get("https://www.imooc.com/user/setprofile");
		driver.findElement(By.className("pull-right")).click();
		//driver.findElement(By.xpath(".//*[@id='profile']/div[4]/div/label[1]")).click();
		List<WebElement> elements = driver.findElements(By.xpath(".//*[@id='profile']/div[4]/div/label//input"));
		System.out.println(elements.size());
		this.sleep(2000);
		for(WebElement radio:elements){
			boolean flag = radio.isSelected();
			if(flag==false){
				radio.click();
				break;
			}else{
				System.out.println("选中了");
			}
		}
	}
	/**
	 * 复选框
	 * */
	public void checkBox(){
		WebElement check = driver.findElement(By.id("auto-signin"));
		System.out.println("是否选中了呢?" + check.isSelected());
		System.out.println("是否有效?" + check.isEnabled());
		//check.clear();  //不需要使用
		this.sleep(2000);
		check.click();
	}
	
	/**
	 * 按钮
	 * */
	public void button(){
		WebElement login = driver.findElement(By.className("moco-btn"));
		System.out.println(login.isEnabled());
		System.out.println(login.getAttribute("value"));
		login.click();
	}
	
	/**
	 * 表单
	 * */
	public void webForm(){
		driver.get("XXXXX");
		driver.findElement(By.id("signup-form")).submit();
	}	
	
	/**
	 * 上传文件
	 * */
	public void upHeader(){
		
		this.sleep(2000);
		driver.get("https://www.imooc.com/user/setbindsns");
		driver.findElement(By.className("js-avator-link")).click();
		driver.findElement(By.id("upload")).sendKeys("C:\\Users\\Public\\Pictures\\Sample Pictures\\logd.png");
	}
	
	/**
	 * 下拉框操作
	 * */	
	public void downSelectBox(){
		this.sleep(2000);
		driver.get("https://www.imooc.com/user/setprofile");
		driver.findElement(By.className("pull-right")).click();
		this.sleep(1000);
		WebElement formElement = driver.findElement(By.id("profile"));
		WebElement job = formElement.findElement(By.id("job"));
		Select downList = new Select(job);
		//downList.selectByIndex(2);	
		//downList.selectByValue("1");
		//downList.selectByVisibleText("学生");
		downList.selectByIndex(2);
		//System.out.println(downList.isMultiple());
		//downList.deselectByIndex(3);
		List<WebElement> List = downList.getAllSelectedOptions();
		for(WebElement option:List){
			System.out.println(option.getText());	
		}		
		System.out.println(downList.getFirstSelectedOption().getText());	
	}
	
	/**
	 * 鼠标事件
	 * */	
	public void moseAction(){
		this.sleep(2000);
		WebElement login = driver.findElement(By.className("menuContent"));
		List <WebElement> item = login.findElements(By.className("item")); 
		Actions actions = new Actions(driver);
		//actions.click(login).perform();	
		//actions.doubleClick(login).perform();
		//this.sleep(2000);
		//actions.contextClick(login).perform();
		actions.moveToElement(item.get(1)).perform();
		windowsHandle = driver.getWindowHandle();
		driver.findElement(By.linkText("HTML/CSS")).click();
	}

	/**
	 * iframe切换
	 * */	
	public void iframe(){
		this.sleep(2000);
		driver.get("https://www.imooc.com/wiki/create");
		WebElement iframeElement =  driver.findElement(By.id("ueditor_0"));
		driver.switchTo().frame(iframeElement);
		driver.findElement(By.tagName("body")).sendKeys("this is test");
	}
	
	/**
	 * 窗口
	 * */	
	public void windowsHandle(){
		this.sleep(2000);
		Set<String> handles = driver.getWindowHandles();
		for(String s:handles){
			if(s.equals(windowsHandle)){
				continue;
			}
			System.out.println(s);
			driver.switchTo().window(s);
		}
		driver.findElement(By.linkText("高级")).click();
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ActionSelenium as = new ActionSelenium();
		as.InitDriver();
		//as.inputBox();
		//as.checkBox();
		//as.button();
		//as.upHeader();
		//as.downSelectBox();
		as.moseAction();
		//as.iframe();
		as.windowsHandle();
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值