Selenium 基本操作--元素定位
对页面元素进行操作
1. 输入框输入
driver.findElement(By.id("id号")).sendKeys(“输入框输入内容”);
例:
driver.findElement(By.id("stadiumName")).sendKeys("测试场馆");
2. 输入框清除
driver.findElement(By.id("id号")).clear();
例:
driver.findElement(By.id("username")).clear();
3. 超文本链接
driver.findElement(By.linkText(“”)).click();
driver.findElement(By.linkText("已审核")).click();
4. 下拉选择框
首先new一个select对象后对其操作
new Select(driver.findElement(By.name("name"))). selectByVisibleText(“文本内容”);
例:
NewSelect(driver.findElement(By.name("stadium[stadium_source]"))).selectByVisibleText("自营");
或
new Select(driver.findElement(By.name("name"))). selectByValue(“value值”) ;
例:
new Select(driver.findElement(By.name("stadium[stadium_source]"))). selectByValue("2");
若不选择对应的选项
new Select(driver.findElement(By.id("id号"))). deselectAll();所有都不选
或
new Select(driver.findElement(By.id("id号"))). deselectByValue( (“value值”) ;
或
new Select(driver.findElement(By.id("id号"))). deselectByVisibleText (“文本内容”);
5. 选择框
driver.findElement(By.name("name")).click();
例
driver.findElement(By.name("stadium[is_chain]")).click();
或使用xpth进行定位操作
driver.findElement(By.xpath("(//input[@name='stadium[is_chain]'])[1]")).click();
6. 按钮
driver.findElement(By.id("save")).click();
driver.findElement(By.id("save")).click();
7. 弹层
Alert alert = driver.switchTo().alert();
alert.getText();
alert.accept(); //确定按钮
alert.dismiss(); //取消按钮,二者二选其一
Alert alert=driver.switchTo().alert();
alert.getText();
alert.accept();
//alert.dismiss();
8. 上传图片
driver.findElement(By.id(“id号”)).sendKeys(“路径”);
driver.findElement(By.id("_toUploadFile")).sendKeys("C:\\Users\\Public\\Pictures\\Sample Pictures\\kala.jpg");
driver.findElement(By.id("upload")).click();
9. 导航
打开一个新页面
driver.navigate().to("http://www.baidu.com");
通过历史导航返回原页面:
driver.navigate().forward();
driver.navigate().back();
10. iframe切换
driver.switchTo().defaultContent();
driver.switchTo().frame(“”);
driver.switchTo().frame("uploadIframe");//切换至其他iframe
driver.switchTo().defaultContent();
driver.switchTo().frame("main")//进入main
11. 打印文本
括号中输入变量值
System.out.PrintIn()
//弹层
Alert alert=driver.switchTo().alert();
alert.getText();
System.out.println( alert.getText());//打印出的文件为“确认要审核通过吗?”
12. 设置随机变量
Int 变量值=(int)(Math.随机函数()*范围值);
int x=(int)(Math.random()*100);//定义一个整型x变量,范围在100内
driver.findElement(By.id("stadiumName")).sendKeys("测试"+x);变量名在引号外边
13. 使用cssSelector
通常情况下没有id,name时,通过cssSelector对type进行操作
driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
或
driver.findElement(By.cssSelector("input.save")).click();
14. 使用xpath
driver.findElement(By.xpath(“(//input[@name=’’])”[value值])).click();
driver.findElement(By.xpath("(//input[@name='is_book'])[2]")).click();
15. 超时等待
当登录系统成功后时间极短,若未设置时间等待,进入iframe进行操作会报错
隐示等待:
Driver.manege().timeouts().implicitlyWait(时间,TimeUnit.时间单位);
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
显示等待:
new WebDriverWait(driver,15).until(ExpectedConditions,presenceOfElementLocated(By.cssSelector(“等待元素变量名”)))
或
Thread.sleep(时间);//单位为毫秒
16. Text关键字
知道超链接元素的文本内容(为a元素)
driver.findElement(By.xpath(‘’(//a[contains(text(),’文本内容’)])[value]值’’)).click();
driver.findElement(By.xpath("(//a[contains(text(),'关联商品')])[2]")).click();
总结:
1.最好将不同的模块写为不同的类,需用时调用即可,方便且避免出错,记得引用时要将被引用的类写为static
2.当页面元素有id属性时,最好引用id进行调用,但很多情况下无法查询id时这时再通过xpath或cssSelector进行定位
3.当页面有超文本链接时,考虑使用linkText进行定位
Selenium 基本操作--元素定位的更多相关文章
- 【基础】selenium中元素定位的常用方法(三)
一.Selenium中元素定位共有八种 id name className tagName linkText partialLinkText xpath cssSelector 其中前六种都比较简单, ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...
- selenium界面元素定位
一. Selenium界面元素定位 本文元素定位以das2为例 #导入包 from selenium import webdriver #打开火狐驱动 driver=webdriver ...
- python+selenium遇到元素定位不到的问题,顺便记录一下自己这次的错误(报错selenium.common.exceptions.NoSuchElementException)
今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Ifram ...
- Selenium Web元素定位方法
Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的Web ...
- 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解
目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...
- 《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- 《手把手教你》系列技巧篇(十六)-java+ selenium自动化测试-元素定位大法之By xpath下卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
随机推荐
- ExtJs 中的ext.date
获取当前日期直接用NEW date() Ext.Date英文API http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Date Ext.Date是一个单例类,封 ...
- 数值选择器(NumberPicker)的功能与用法
数值选择器用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值.使用该组件常用如下三个方法. setMinValue(int minVal):设置该组件支持的最小值. setMax ...
- ResultSet遍历过程中修改自身数据,不会改变循环的过程
ResultSet遍历过程中修改自身数据,不会改变循环的过程: import java.sql.Connection; import java.sql.PreparedStatement; impor ...
- HDU-1701-ACMer
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1701 解题: 好久没做题,好久没写解题思路了,连简答题都不会做了,下午的月赛挂了,我悲剧了,在此发牢骚 ...
- HDU-2573-Typing
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2573 这题把%s与gets()的输入法搞混了一直感觉没有错,就是找不出哪里错了, 题目思路不是很难. ...
- Linux C++程序进行性能分析工具gprof使用入门
性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是 ...
- 文字在div中水平和垂直居中的的css样式
文字在div中水平和垂直居中的的css样式 text-align:center; /*水平居中*/ line-height: 20px; /*行距设为与div高度一致*/ 示例如下: HTML元素 & ...
- JAVA中Singleton的用法
Java Singleton模式属于管理实例化过程的设计模式家族.Singleton是一个无法实例化的对象.这种设计模式暗示,在任何时候,只能由JVM创建一个Singleton(对象)实例. JAVA ...
- CocosBuilder 多分辨率基础
最近两个项目大量使用了CocosBuilder, 对于开发效率提高是巨大的. 一直计划写一篇博客谈谈CocosBuilder的多分辨率问题, 懒病加上一些疙疙瘩瘩的小事情, 拖延了一个多月, 才终于下 ...
- 二分查找 - vb.net
Module Module1 Sub Main() Dim array(999) As Integer Dim searchValue As Integer ...