一、简单元素定位

学习了元素的定位方法和元素的操作之后,下面就来练习一下,下面是html的源码

test

function toAlert() {

alert("hello continue...");

}

第一个div
第二个div
第三个div

username:

password:

地区:

天津

北京

上海

河北

性别:

Boy

Girl

四季:

百度首页走起~

和大的DIV并列
没有id和name,是不是傻眼了

第一本书

第二本书

第三本书

第四本书

(一)、练习1:统计出当前页面有多少个div

List list = driver.findElements(By.tagName("div"));

int number = list.size();

System.out.println("一共有"+number+"个div");

(二)、练习2:输出页面第一个div中的文字

String divText = driver.findElement(By.cssSelector("form > div")).getText();

System.out.println(divText);

(三)、练习3:用xpath找出所有的复选框,并点击

List elements = driver.findElements(By.id("u"));

for(int i=0;i

if(elements.get(i).isSelected()==false){

elements.get(i).click();

}

}

(四)、找出input标签中所有属性中含有check,并输出tagname

List elements = driver.findElements(By.xpath("//*[contains(@*,'check')]"));

for(int i=0;i

System.out.println(elements.get(i).getTagName());

}

(五)、找出页面元素,id属性包含o,并输出id名称

List elements = driver.findElements(By.xpath("//*[contains(@id,'o')]"));

for (int i = 0; i < elements.size(); i++) {

String id = elements.get(i).getAttribute("id");

System.out.println("id="+id);

}

(六)、找出页面元素中,id属性为acc开头的,并输入id的名称

List elements = driver.findElements(By.xpath("//*[starts-with(@id,'acc')]"));

for (int i = 0; i < elements.size(); i++) {

String id = elements.get(i).getAttribute("id");

System.out.println("id="+id);

}

(七)、定位到页面文本含有“百度”的元素,并输出文本值

List elements = driver.findElements(By.xpath("//*[contains(text(),'百度')]"));

for (int i = 0; i < elements.size(); i++) {

String text = elements.get(i).getText();

System.out.println("text="+text);

}

(八)、找出页面中最后一个div,并输出其文本值

String text = elements.get(elements.size()-1).getText();

System.out.println(text);

Logger.log("关闭" + browser + "浏览器");

(九)、下拉菜单、单选框,多选框操作

// 下拉菜单的练习

WebElement element = driver.findElement(By.id("areaID"));

Select select = new Select(element);

// select.selectByValue("3");

// select.selectByIndex(2);

select.selectByVisibleText("上海");

//单选框练习

List elements = driver.findElements(By.name("u2"));

if (elements.get(1).isSelected() == false) {

System.out.println(elements.get(1).isSelected());

elements.get(1).click();

}

//复选框的练习

List elementlist = driver.findElements(By.id("u"));

for (int i = 0; i < elementlist.size(); i++) {

if (elementlist.get(i).isSelected() == false) {

elementlist.get(i).click();

}

}

二、复杂元素定位

有时候我们会遇到一些html中只有一个元素属性,其他都没有属性,那么这时候我们就需要从这个属性中,定位到另一个元素

(一)、练习一

已知一个订单商品名字,查找这个订单的状态

步骤

1、定位商品名称的元素

操作:F12浏览器--点击“选取页面中的元素”按钮--把鼠标移动到商品名称上点一下--在查看器右击被选中的html代码,选择复制--xpath,得到如下结果

/html/body/div[2]/div/div[1]/div[1]/div[3]/div/div[4]/div/table/tbody[2]/tr/td[1]/div/div[2]/p[1]/a[1]/span[2]

2、定位这个商品订单状态的元素

同样的方法,使用xpath定位商品订单状态

/html/body/div[2]/div/div[1]/div[1]/div[3]/div/div[4]/div/table/tbody[2]/tr/td[6]/div/p/span

3、取两个定位元素的相交节点

商品名称:/tr/td[1]/div/div[2]/p[1]/a[1]/span[2]

订单状态:/tr/td[6]/div/p/span

4、定位到商品名称

因为"人本"是搜索订单出来的,所以带有文本为红色的样式,只能定位到人本之前的文本,所以如下

//tr/td[1]/div/div[2]/p[1]/a[1]/span[2][contains(text(),'【开学价】')]

5、定位订单的状态

用[]把父节点后面的元素括起来,去掉订单状态的父节点,后面+订单状态的元素即可

//tr[td[1]/div/div[2]/p[1]/a[1]/span[2][contains(text(),'【开学价】')]]/td[6]/div/p/span

(二)、练习二

步骤

1、找到.success

/html/body/div[3]/div/div[2]/div/div[3]/div/table[2]/tbody/tr[3]/td[1]

2、使用xpath定位“尝试一下”按钮

/html/body/div[3]/div/div[2]/div/div[3]/div/table[2]/tbody/tr[3]/td[3]/a

3、定位“尝试一下”按钮

取两个定位元素的相交节点

tr[3]/td[1]

tr[3]/td[3]/a

定位到.success文本

//tr[3]/td[1][text()=".success"]

用[]把父节点后面的元素括起来,去掉【尝试一下】按钮的父节点,后面+订单状态的元素即可

//tr[3][td[1][text()=".success"]]/td[3]/a

java元素定位div_Java+Selenium元素定位的练习(三)相关推荐

  1. java+标签定位_java+selenium——查找定位元素,elements复数定位(driver.findElementsByClassName(mnav);)002...

    elements复数定位: 在上面的例举的八中基本定位方式种,都有对应的复数形式,分别是下面这些: id复数定位find_elements_by_id() name复数定位find_elements_ ...

  2. java+selenium——查找定位元素,elements复数定位(driver.findElementsByClassName(mnav);)001...

    WebElement类可支持查询子类元素.假设页面上有一些重复的元素,它们有不同的父元素.我们可以先定位其父元素,然后定位其子元素,方法如下: WebElement father = driver.f ...

  3. java+selenium——查找定位元素,elements复数定位(driver.findElementsByClassName(mnav);)002...

    elements复数定位: 在上面的例举的八中基本定位方式种,都有对应的复数形式,分别是下面这些: id复数定位find_elements_by_id() name复数定位find_elements_ ...

  4. selenium 无法定位打开a链接_测试干货 :Selenium8种元素定位法

    " 在做WEB自动化时,最根本和基础的是操作页面上的元素,所以能找到这些元素,才能进行操作.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? " ...

  5. Selenium之定位元素常用的8种方法整理(第一篇)

    在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...

  6. python selenium 元素定位_python3+selenium入门04-元素定位

    我们在对浏览界面做操作时,比如点击按钮,搜索框输入内容.都需要把鼠标挪过去,然后再点击,或者输入内容.在selenium操作时也是一样的.需要先对元素进行定位,然后才能进行操作.可以借助浏览器的开发者 ...

  7. CssSelector之selenium元素定位

    CssSelector是我最喜欢的元素定位方法,Selenium官网的Document里极力推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath loc ...

  8. Java黑皮书课后题第8章:*8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置。返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标

    *8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置.返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标 题目 题目描述与运行示例 破题 代码 题目 ...

  9. 自动化测试selenium(三) 由于iframe 定位不到元素

    iframe原因定位不到元素 现在的项目后台基本都是上左右结构,要出现这个结构效果,需要使用到了iframe标签: 我们先说说iframe在java中使用的方法: driver.switchTo(). ...

最新文章

  1. python中append的用法_Python 列表 append() 使用方法及示例
  2. 世界围棋人机大战、顶峰对决第二战:围棋世界冠军Lee Sedol(李世石,围棋职业九段)对战Google DeepMind AlphaGo围棋程序,AlphaGo再次胜出!
  3. [转载]织梦后台添加新变量-内容模型
  4. 总结面试题——Javascript
  5. python list index方法,Python List.index()方法
  6. CSS+DIV+HTML(一)--HTML总结
  7. POJ1654 Area(多边形面积)
  8. rds支持mysql自带函数吗_MySQL自定义函数(CREATE FUNCTION)
  9. PS第三课--套索和魔棒工具
  10. 如何使用robots.txt及其详解
  11. 使用 openssl 进行 base64 编解码
  12. OSChina 周三乱弹 ——你是有多寂寞啊,看光头强都……
  13. 【C#】C#实现端口扫描器
  14. 你有一份七夕赚钱指南等待签收
  15. 第7章第30节:四图排版:四张图片交错对齐排列 [PowerPoint精美幻灯片实战教程]
  16. 云服务器上手是多么的简单?你看了就知道了
  17. 数字生活时代,支付宝开放“宫格”流量,商业“百川”流向中小商家
  18. 在html table 标签的中background和bgcolor两个属性有什么关系?
  19. 自有视频会议+第三方视频会议系统混合使用
  20. python小白到大牛pdf_清华大学出版《python小白到大牛》PDF版分享

热门文章

  1. 绘制不规则位图方法总结,多种实现方法,全面测试比较
  2. python自动化入门操作文档,写得如此清晰明了,忍不住让人点赞
  3. 扣绩效,从来都不会让团队变得更好
  4. 他初中学历做开发,3年在北京买了房,超过了99%的程序员!
  5. python3urllib常见使用_Python3 urllib常用操作
  6. python飞机大战实训报告200_飞机大战实训报告.doc
  7. 华为开启位置服务器,android 开启位置服务器
  8. pyqt5 捕获异常确保程序不退出_Python异常处理详解(基础篇十一)
  9. 洛谷 深基 第4部分 基础数学与数论(19-21课)
  10. 信奥中的数学:计算几何