`
文章列表
在进行Web测试时,还会弹出一些子窗口,并且在多个窗口之间进行切换操作。 例如,在百度首页,单击“注册”超级链接,弹出一个标题为“百度账号注册”新页面。接下来以百度账号注册窗口为例,讨论如何测试多个窗口之间的切换。 1  WindowHandles/getWindowHandles()   要在多个窗口之间进行切换,首先必须获取每个窗口的唯一标识符(句柄),通过WindowHandles属性(用于C#)/getWindowHandles()(用于Java)可以获取所有打开窗口的标识符,并将其以集合的形式返回。 下面举例说明先打开百度注册窗口,然后获取所有窗口的标识符并将其打印出来 WebDri ...
日志记录可结合上一专题的报告共同生成,日志中可记录自动化测试过程中详细日志信息.由日志中可以看到详细的报错时间,报错类,报错行,报错内容. package ts.dw.logic; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /* * 日志类 * 当运行遇到错误后会生成一个error的日 ...
在处理表格时,我们可以通过By类中的一些方法快速有效的来定位表格的行和单元格。 笔者曾经得到一个需求,说是要来获取如下图所示的内容(注:百度只是我做的一个例子): package com.mytest; import java.util.List; import java.ut ...
我们在页面的测试中,会发现很多输入框的测试,这些输入框中我们需要各种不同类型的数据来测试程序是否能正确处理,因此会涉及到一个“参数化”的过程.简单介绍Selenium中如何利用Excel实现“参数化“ 导入Feed4testng相关的包, 继承FeedTest这个类,然后把数据写入到Excel,直接读Excel,脚本和数据分离,而且也不需要用JAVA写读取Excel的代码,相当方便 用读取Excel的方式 : import org.testng.annotations.Test; import org.testng.annotations.BeforeSuite; import stat ...
JavaScript共有3种弹出对话框框Alert、Confirmation以及Prompt。 Alert:提示对话框,只有一个“确定”按钮(对应的JavaScript代码为“alert('这是Alert');”) Confirmation:确认对话框,需要选择(对应的JavaScript代码为“confirm('这是Confirmation');”)。 Prompt:输入对话框,需要输入内容(对应的JavaScript代码为“prompt('这就是prompt','');”) 由于Selenium 1使用的是JavaScript注入的方式来进行测试,所以无法直接处理JavaScript弹出 ...
XPATH是一门在XML文档中查找信息的语言,XPATH可用来在XML文档中对元素和属性进行遍历,主流的浏览器都支持XPATH,因为HTML页面在DOM中表示为XHTML文档。 XPATH语言是基于XML文档的树结构,并提供了浏览树的能力,通过多样的标准来 ...
CSS是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。 CSS选择器有如下几种方式定位页面元素: a、使用绝对路径定位元素(不推荐) 例: WebElement ele = driver.findElement(By.cssSelector("html body div form input")); b、使用相对路径定位元素 例:(如果一个页面存在多个input,则下面代码将返回找到的第一个input,如果存在多个相同标签可以使用List,他将返回所有包含该标签的list集合) WebElement ele = ...
Selenium WebDriver提供一个先进的技术来定位web页面元素。Selenium功能丰富的API提供了多个定位策略:ID、Name、Xpath、CSS选择器等等。我们也可以执行自定义的定位策略来定位元素。 善于使用浏览器工具来检查页面元素结构 无论你使用哪种浏览器测试,都有一款合适的工具辅助你分析页面 1、Firefox的Firebug插件 2、Chrome内置的开发者工具 3、Internet Explorer自带的开发者工具 1、使用findElement方法定位元素 Selenium Webdriver定位元素通过使用findElement()和findElements()方 ...
1  Title/getTitle() Title属性(适用于C#)和getTitle()方法(适用于Java)用于返回当前网页的标题。 WebDriver driver = new FirefoxDriver(); Navigation navigation = driver.navigate(); navigation.to(http://www.baidu.com); String title = driver.getTitle(); System.out.println( ...
在Selenium 1中,直接通过Selenium的各种方法来操作页面元素,但在Selenium 2中则不同,需要通过By对象先定位到对应的页面元素,然后调用这个页面元素的相关方法来进行操作。 可以通过WebDriver的FindElement()方法获得WebElement的对象实例。 在获取页面元素后,就可以对该页面元素进行各种操作了。 1  Click() Click()方法用于执行单击元素的操作。例如,百度首页上有“登录”超级链接,要单击“登录”超级链接 WebDriver driver = new FirefoxDriver(); Navigation navigation = d ...
在导航到对应页面后,就可以对页面上的元素进行操作了。然而,在进行操作之前,必须要找到相应的元素。如何才能找到这些元素呢?需要使用查找条件对象“By”进行查找。 根据HTML的不同,查找条件也各有不同。例如,可以按HTML元素的ID进行查找,也可以按Name属性查找,或者直接按HTML标签查找,接下来将列举常用的查找条件。 1  Id(idToFind) WebElement baiduTextBox = driver.findElement(By.id("kw")); baiduTextBox.sendKeys("找到文本框"); 代码driver.Fi ...
1. 选择浏览器开始测试 要开始测试,首先得创建Selenium的实例,也就是对应的Driver。 如果需要对Firefox进行测试,则需要用到FirefoxDriver,代码如程序清单所示。 packageProject1; importorg.openqa.selenium.*;//注意这里导入了selenium包中内容 importorg.openqa.selenium.WebDriver.*;//注意这里导入了selenium包中内容 importorg.openqa.selenium.firefox.*;//注意这里导入了selenium包中内容 publicclassProj ...
Selenium 2的下载地址为:http://seleniumhq.org/download/,位于“Selenium Client Drivers”栏,选择使用的编程语言版本下载即可,这些包中同时包含了Selenium 1和Selenium 2的文件。 JDK的下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/inde ...
截屏 import java.io.File; import java.net.URL; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.Augmenter; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.s ...
等待是在执行自动化任务一段时间后才继续下一步。 显示等待 一个显示等待是你定义的一段代码,用于等待某个条件发生然后再继续执行后续代码。最坏的一个例子当属Thread.sleep(),它用一段明确的等待时间作为条件。WebDriver有一些方便的方法可以帮助你写出按需等待的代码。WebDriverWait结合ExpectedCondition便是其中一种。 java WebDriver driver = new FirefoxDriver(); driver.get("http://somedomain/url_that_delays_loading"); WebEle ...
Global site tag (gtag.js) - Google Analytics