一:By.id定位
driver.findElement(By.id)
二:By.className定位
driver.findElement(By.className)
三:By.name定位
driver.findElement(By.name("eml"))
四:By.tagName定位
driver.findElement(By.tagName("input"))
五:By.linkText定位
driver.findElement(By.linkText("注册"))
六:By.partialLink定位(部分链接定位)
driver.findElement(By.partialLink("直接"))
七:By.xPath定位(经常用到)
driver.findElement(By.xPath(".//*[@id='kw']"))
八:By.css定位
driver.findElement(By.id)
九:table定位方式
image.png
十:从一组中定义一个
WebElement ele=driver.findElement(By.className(item));
List <WebElement> eles=ele.findElements(By.tagName("li"))
eles.get(3).click()
十一:radio定位元素
List<WebElement> eles = driver.findElements(By.xpath(".//*[@id='profile']/div[4]/div/label//input"));
System.out.println(eles.size());
for(WebElement radio:eles){
boolean flag=radio.isSelected();
if(flag==false){
radio.click();
break;
}
十二:通过style定位元素
String jsString = "document.getElementsByClassName('link')[0].style.bottom=0";
//把driver转化为JS
JavascriptExecutor js=(JavascriptExecutor) driver;
js.executeScript(jsStringß)
十三:下拉框定位
//select 对象
WebElement seles=driver findElement(By.id("box"));
Select list =new Select(seles);
//选择对应的元素
list.selectByIndex(2) 通过index
list.selectByValue(“2”) 通过标签属性 value值
list.selectByVisibleText(2) 通过可见的文本
// 不选择对应的元素(多选下拉列表)
.isMultiple()判断是否为多选下拉列表
list.deselectByIndex(2)
list.deselectAll()
list.deselectByValue()
list.deselectByVisibleText()
//对下拉框的操作
list.getAllSelectedOptions() 只对多选下拉 与“不选择对应的元素”配合使用
List<WebElement> ls=list.getAllSelectedOptions();
for(WebElement option:ls){
System.out.printl(option.getText())// 获取页面选中的元素
}
list.getFirstSelectedOption().getText() 获取当前选中选择第一个
十四: 鼠标悬停定位
WebElement login = driver.findElement(By.className("menuCount));//获取元素父级
List<WebElement> item=login.findElements(By.className("item"));//获取一组
Actions actions=new Actions(driver);
actions.moveToElement(item.get(0)).perform();
driver.findElement(By.linkText("html")).click();
十五:iframe元素定位(一般为复文本编辑会用iframe嵌套)
//用switchTo()方法定位到复文本编辑框内
WebElement iframeElement=driver.findElement(By.id("if"));
driver.switchTo().frame(iframeElement);//定位到iframe嵌套的页面
driver.findElement(By.id('body')).sendKeys("test");
网友评论