ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-04-25 13:04:58  阅读:205  来源: 互联网

标签:xpath -- Selenium driver 笔记 WebElement findElement id


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")

 

标签:xpath,--,Selenium,driver,笔记,WebElement,findElement,id
来源: https://www.cnblogs.com/meiyouyou/p/14683367.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有