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);
}
}