微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Selenium学习笔记2 -- 元素定位

1. 定位单个元素

前提: WebDriver driver = new ChromeDriver();

-- id   

WebElement bb = driver.findElement(By.id("kw"));   一个页面中,id具有唯一性,因此通过id定位的元素具有唯一性

-- name   

WebElement bb = driver.findElement(By.name("wd"));  不具有唯一性,可能有多个

-- class name   

WebElement bb = driver.findElement(By.className("s_ipt"));

-- tag name

WebElement bb = driver.findElement(By.tagName("input"));

-- link text

WebElement bb = driver.findElement(By.linkText("新闻"));

-- partial link text

WebElement bb = driver.findElement(By.partialLinkText("新"));

-- xpath

(1) xpath是XML中的一种定位语言

(2) WebElement bb = driver.findElement(By.xpath("//*[@id='kw']"))   /   driver.findElement(By.xpath("//input[@id='kw' and @name='wd']"))

(3) PageFactory 设计模式,通过注解方式来定位元素对象

   @FindBy(xpath = "//input[@id='kw']")
   private WebElement userInput; //将@FindBy注解通过对应的定位方法找到的元素赋值给成员变量


   WebDriver driver = new ChromeDriver(); //实例化driver
   driver.get("https://www.baidu.com/"); //导航到正确的页面
   HelloSelenium m = PageFactory.initElements(driver, HelloSelenium.class);  //创建一个页面类的实例,同时将页面元素字段初始化
   m.userInput.sendKeys("java123");  

-- css selector

WebElement bb = driver.findElement(By.cssSelector("#kw");

 

2. 定位一组元素

(1) List<WebElement> search_result = driver.findElements(By.xpath("//div/div/h3"));  

定位一组元素的方法与定位单个元素的方法类似,唯一的区别是在单词 findElement 后面多了一个 s 表示复数

(2) String[] ary = new String []{"seleniumaaa","sdf","ffd ","rgrh"};//你所定义的数组

    @FindBy(xpath = "//input[@id='kw']")

    private List<WebElement> userInput; //将@FindBy注解通过对应的定位方法找到的元素赋值给成员变量

    m.userInput.get(0).sendKeys(m.ary[1]);

 

3. 定位表格中的元素

By.xpath("//*[@id='reprojectionTab_Panel_2']//table[@id='payoutTable']/thead/tr[@id='headerRow_0']/th[3]")

 

4. 谷歌浏览器查找元素

打开浏览器界面,右键选择inspect(检查),选择箭头,需要查找哪个元素信息就点哪里 / 或通过前端工具Firebug查找页面元素

 

5. 验证元素定位

-- https://blog.csdn.net/weixin_43277055/article/details/85319676

-- chrome开发者工具,选console tab-->ctrl+L清空console内容--->输入:$x(“your_xpath_selector”) ,括号里需要通过双引号括起来,如果Xpath语句中有双引号,要改成单引号

$x("/html/body/div[4]/div/ul/li[1]/a")  /  $x("//*[@id='iblogonForm']/div[1]/label")

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐