selenium自动化测试实例

11.1使用JavaScripExecutor单击元素

被测试网页:http://www.sogou.com

Java代码

public class NewTest {

WebDriver driver;

String baseUrl;

JavascriptExecutor js;

@Test

public void f() throws Exception {

WebElement searchInputBox=driver.findElement(By.id("query"));

WebElement searchButton=driver.findElement(By.id("stb"));

searchInputBox.sendKeys("使用javascipt语句进行页面元素的单击");

//调用等装好的JavaScipt方法来单击sogou首页的搜索按钮

JavaScriptClick(searchButton);

}

public void JavaScriptClick(WebElement element) throws Exception{

try{

//if条件判断函数参数传入的element元素是否处于可单击状态,以及是否显示在页面上

if(element.isEnabled()&&element.isDisplayed()){

System.out.println("使用JavaScipt进行页面元素的单击");

//执行JavaScipt语句argument[0].click()

((JavascriptExecutor) driver).executeScript("arguments[0].click();",element);

}else{

System.out.println("页面上的元素无法进行单击操作");

}

//当出现异常的时候,catch语句会被执行,打印相关的异常信息和堆栈信息

}catch(StaleElementReferenceException e){

System.out.println("页面元素没有附加在网页中"+e.getStackTrace());

}catch(NoSuchElementException e){

System.out.println("页面中没有找到要操作的页面元素"+e.getStackTrace());

}catch(Exception e){

System.out.println("无法完成单击动作"+e.getStackTrace());

}

}

代码解释:方法里面的代码实现就是一种封装,把常用的操作卸载一个函数里面,就可以很方便的重复调用,减少冗余代码的编写,提高测试代码的编写效率。

————————————————————————————————————————————————————

11.2在Ajax方式产生的浮动框中,单击选择包含某个关键字的选项

目的:有些被测试页面包含Ajax的局部刷新机制,并且会产生显示多条数据的浮动框,需要单击选择浮动框中包含某个关键的选项

被测试网页:http://www.sogou.com

Java代码

@Test

public void f() throws Exception {

WebElement searchInputBox=driver.findElement(By.id("query"));

//WebElement searchButton=driver.findElement(By.id("stb"));

searchInputBox.click();

//将浮动框中的所有选项存储到suggetionOptions的List容器中,直接复制的xpath是://*[@id="vl"]/div[1]/ul/li[3],这里的双引号需要转义一下

//List需要进入包,刚开始引入的import java.awt.List;报错,引入import java.util.List;成功

List <WebElement>suggetionOptions=driver.findElements(By.xpath("//*[@id=\"vl\"]/div[1]/ul/li[3]"));

for(WebElement element:suggetionOptions){

if(element.getText().contains("")){

System.out.println(element.getText());

element.click();

break;

}

}

}

————————————————————————————————————————————————————————

11.3设置一个页面对象的属性值

目的:掌握设定页面对象的所有属性的方法,本节以设定文本框的可编辑状态和显示长度为目标。

被测试网页:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>设置文本框属性</title></head><body><input type="text" id="text" value="今年的西瓜相当甜" size="100">文本框</body></html>

java代码

public class NewTest {

WebDriver driver;

String baseUrl;

JavascriptExecutor js;

@Test

public void f() throws Exception {

WebElement textInputBox=driver.findElement(By.id("text"));

//调用setAttribute方法修改文本框的value属性值,改变文本框中显示的文字

setAttribute(driver,textInputBox,"value","文本框的文字和长度属性已经被修改了");

//调用setAttribute方法修改文本框的size属性值,改变文本框中的长度

setAttribute(driver,textInputBox,"size","10");

//调用removeAttribute方法删除文本框中的size属性值

//removeAttribute(driver,textInputBox,"size");

//增加页面元素属性属性和修改页面元素属性的封装方法

}

private void setAttribute(WebDriver driver2, WebElement textInputBox, String string, String string2) {

// TODO Auto-generated method stub

JavascriptExecutor js=(JavascriptExecutor) driver;

Object element = null;

Object attributeName = "aa";

Object value = null;

js.executeScript("arguments[0].setAttribute(arguments[1],arguments[2])",element,attributeName,value);

}

/*private void removeAttribute(WebDriver driver2, WebElement textInputBox, String string) {

// TODO Auto-generated method stub

JavascriptExecutor js=(JavascriptExecutor) driver;

Object element = null;

Object attributeName = null;

Object value = null;

js.executeScript("arguments[0].removeAttribute(arguments[1],arguments[2])",element,attributeName,value);

}*/

@BeforeMethod

public void beforeMethod() {

baseUrl="C:\\Users\\Administrator\\WebstormProjects\\untitled\\11.3.html";

System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");

driver=new ChromeDriver();

driver.get(baseUrl);

}

时间: 2024-10-07 17:54:24

selenium自动化测试实例的相关文章

selenium自动化测试框架之PO设计模式

面向对象的特性:封装.继承.多态.在自动化中一样适用,Selenium自动化测试中有一个名字常常被提及PageObject(思想与面向对象的特性相同),通过PO模式可以大大提高测试用例的维护效率. ##传统测试脚本的弊端 测试脚本分离,维护成本高 可扩展性差 复用性低等 PageObject设计模式 PO的核心要素: 在PO模式中抽象封装成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性. 每个一个page都继承BasePage,通过driver来管理本page中元素

selenium自动化测试(1):环境搭建

Selenium是一款优秀的WEB自动化测试工具,它功能强大,易于使用,支持多种平台.多种浏览器和多种开发语言.这里介绍使用python+selenium进行自动化测试的一些基础知识. 在Windows下搭建测试环境,首先需要下载Python,Selenium应该还不支持Python 3.x系列,所以最好选择Python 2.x,注意区分32位和64位. Python的安装特别简单,需要提醒的是,安装路径中千万不要包含空格(最好也别包含中文),否则后面使用pip安装扩展包的时候可能会失败!其他的

python 学习笔记,selenium 自动化测试 更新开始

学python快两个月了,因为时间很少,经常都是每天只能看半个到一个钟的时间,有些东西看了又忘记了!所以从今天起,每天更新自己学习python 和 selenium 自动化测试的总觉,每天进步一点,好记性不如烂笔头,就从今天开始吧! -------------I Will Show You How Greate I am!

JavaScript(Node.js)+ Selenium自动化测试

Selenium is a browser automation library. Most often used for testing web-applications, Selenium may be used for any task that requires automating interaction with the browser. Selenium是一个浏览器自动化测试库,大多时候我们用它来测试web应用,Selenium 可以胜任任何在浏览器上自动化测试的任务. 众所周知,

Selenium自动化测试问题

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: *** LOG addons.manager: Application has been upgraded *** LOG addons.xpi: startup *** LOG addons.xpi: Skipping

Selenium自动化测试-进阶2-框架篇

前面的文章已经讲述了 Selenium自动化的入门知识,不知道各位看官看懂没有,有不懂的请留言. 接下来,开始讲解 Selenium自动化测试进阶知识. 首先讲解:自动化测试的核心: 利用自动化程序代替手工,实现复杂繁琐的测试. 所以:自动化测试的运行必须是准确的,否则费时费力. 什么样的程序是准确的?? 准确的自动化程是 95%以上Error是真正的错误.否则,自动化测试就是失败的. 那么,要怎么提高自动化测试运行的准确率呢? 把基础学扎实了! 要学好自动化,Java要学好,然后是 JS,当然

自动化测试学习笔记1——Python + Selenium自动化测试环境配置

Python + Selenium自动化测试环境配置(Windows平台) 准备工具: 下载python    http://python.org/getit/ 下载setuptools http://pypi.python.org/pypi/setuptools 下载pip https://pypi.python.org/pypi/pip 下载selenium   https://pypi.python.org/pypi/selenium 下载selenium服务端 https://code.

用Selenium自动化测试android wap页面

利用Selenium自动化测试android wap页面:http://blogs.360.cn/360qtest/2014/04/01/%E5%88%A9%E7%94%A8selenium%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95android-wap%E9%A1%B5/

基于python语言的Selenium自动化测试

  一.Selenium简介 Selenium是一个web自动化应用测试工具,还支持所有的web的管理任务自动化.并且开源免费,也是一个web自动化轻量级框架.它支持多种浏览器.跨平台.跨操作系统.支持多种编程语言编写脚本,还能进行分布式测试用例的执行. Selenium经历三个版本,Selenium1.Selenium2.Selenium3.它不是单独的一个工具,而是由一些类库.插件.工具等组合而成.主要的工具: Selenium IDE:Selenium IDE是嵌入火狐浏览器中的一个插件,