selenium定位元素

一: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定位方式


selenium定位元素_第1张图片
image.png

十:从一组中定义一个

WebElement ele=driver.findElement(By.className(item));
List  eles=ele.findElements(By.tagName("li"))
eles.get(3).click()

十一:radio定位元素

List 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 ls=list.getAllSelectedOptions();
for(WebElement option:ls){
  System.out.printl(option.getText())// 获取页面选中的元素
}

list.getFirstSelectedOption().getText()  获取当前选中选择第一个


十四: 鼠标悬停定位

WebElement login = driver.findElement(By.className("menuCount));//获取元素父级
List 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");

你可能感兴趣的:(selenium定位元素)