Selenium-Java Web自动化常见元素的处理-基础

1:input元素的处理

1.1:input文本输入框Selenium常用的方法

1:SendKeys(); --->输入文字

2:clear();---->清楚已经输入的内容

3:getAttibute()--->获取属性

1.2:SendKeys的用法

1.2.1:输入文本内容

public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo(){
		
		driver = new FirefoxDriver();
		
		driver.get("https://www.baidu.com/");
		//sendKeys输入文本内容
		driver.findElement(By.id("kw")).sendKeys("selenium-input");
	}
}

1.2.2:上传图片(这种方法只能针对input类型的输入框)

public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo(){
		
		driver = new FirefoxDriver();
		//百度识图 上传图片
		driver.get("http://image.baidu.com/?fr=shitu");
		
		driver.findElement(By.linkText("识图一下")).click();
		//定位到fileuploaad的元素 对与input类型的元素 可使用sendKeys上传图片
		driver.findElement(By.id("stfile")).sendKeys("C:\\Users\\Anndy\\Desktop\\timg.JPEG");
	}
}

1.3:getAttribute

获取元素value对应的值

public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo(){
		
		driver = new FirefoxDriver();
		//百度识图 上传图片
		driver.get("http://image.baidu.com/?fr=shitu");
		//getAttribute可以获取元素value的值
		String attribute = driver.findElement(By.linkText("识图一下")).getAttribute("class");
		
		System.out.println(attribute);
		
		driver.findElement(By.linkText("识图一下")).click();
		
		//定位到fileuploaad的元素 对与input类型的元素 可使用sendKeys上传图片
		driver.findElement(By.id("stfile")).sendKeys("C:\\Users\\Anndy\\Desktop\\timg.JPEG");
	}
}

2:Radio单选框

2.1:单选框常用的API

1:click()

2:clear()

3: isSelected()

2.2:单选框的操作代码

如下 "注册类型"的name属性为membertype 并且这三个是唯一的  所以可以以name属性定位一个集合


public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo(){
		
		driver = new FirefoxDriver();
		
		driver.get("http://bbs.feeyo.com/register.jsp");
		
		driver.manage().window().maximize();
		//按照name获取单选框element的集合
		List<WebElement> list = driver.findElements(By.name("membertype"));
		//选择index为2的单选框 点击选择
		list.get(2).click();
	}
}

代码2:匹配不同的Attribute的value对应的key值进行选择

public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo(){
		
		driver = new FirefoxDriver();
		
		driver.get("http://bbs.feeyo.com/register.jsp");
		
		driver.manage().window().maximize();
		//按照name获取单选框element的集合
		List<WebElement> list = driver.findElements(By.name("membertype"));
		//不区分大小写匹配value为prof的元素 然后进行选择
		for (WebElement element : list) {
			
			String attribute = element.getAttribute("value");
			
			if(attribute.equalsIgnoreCase("prof")){
				
				element.click();
			}else{
				
				continue;
			}
		}
	}
}

3:check多选框的处理

3.1:多选框的API

1:click()

2:clear()

3:isSelected()

4:isEnabled()

3.2:多选框操作代码

代码编写思想:先定位到这个多选框的父节点 然后在父节点下定位每一个子节点


public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo() throws Exception{
		
		driver = new FirefoxDriver();
		
		driver.get("http://km4.jsyst.cn/dx/");
		
		driver.manage().window().maximize();
		//先定位到父节点
		WebElement element = driver.findElement(By.id("id_myans_select"));
		//在父节点下定位img标签的元素
		List<WebElement> list = element.findElements(By.tagName("img"));
		
		for (WebElement ele : list) {
			//每个元素一一选中
			ele.click();
			Thread.sleep(2000);	
		}
		
	}
}

4:下拉查单的操作

4.1:下拉框的操作

4.1.1:选择对应的元素


4.1.2:不选择对应的元素


4.1.3:获取选择项的值


4.2:单选下拉框的操作

如下图 我们发现“活动城市”选择框的元素定位信息

执行代码部分

public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo() throws Exception{
		
		driver = new FirefoxDriver();
		
		driver.get("http://bbs.feeyo.com/register.jsp");
		
		driver.manage().window().maximize();
		
		WebElement element = driver.findElement(By.name("citylist"));
		//创建选择框对象
		Select select = new Select(element);
		//以value值匹配
		//select.selectByValue("北京|cn0010beijing");
		//以text匹配
		select.selectByVisibleText("北京");	
		//以下标来选择 index为3的是上海 实际的第4个
		//select.selectByIndex(3);
	}
}

猜你喜欢

转载自blog.csdn.net/hujyhfwfh2/article/details/80962191