文档章节

Selenium

素人派
 素人派
发布于 2015/07/22 07:55
字数 508
阅读 22
收藏 0
  • 介绍
Selenium是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试。 Selenium可以使用Java或者Python语言来开发。
  • InternetExplorerDriver
需要一个驱动文件IEDriverServer.exe
  • FirefoxDriver
  • ChromeDriver
  • Java语言的Helloworld
添加maven依赖: [codesyntax lang="xml"]
<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.9.0</version> 
</dependency>
[/codesyntax] 下面是Java写的一个例子: [codesyntax lang="java"]
package org.suren.seleinum.test;

import java.io.File;
import java.util.List;
import java.util.Random;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

/**
 * @author surenpi.com
 * 
 * @2015年6月3日
 */
public class InternetExplorerTest {

	public static void main(String[] args) {
		DesiredCapabilities capability=DesiredCapabilities.internetExplorer(); 
		capability.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
		
		File file = new File("d:/IEDriverServer.exe");  
		System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
		
		WebDriver webDriver = new InternetExplorerDriver(capability);
		webDriver.get("http://surenpi.com");
		
		List<WebElement> eles = webDriver.findElements(By.tagName("a"));
		
		try
		{
			for(WebElement ele : eles)
			{
				String rel = ele.getAttribute("rel");
				if("bookmark".equals(rel))
				{
					ele.click();
				}
			}
		}
		catch(Exception e)
		{
		}
		
		gotoPrevPage(webDriver);
		
//		webDriver.quit();
	}
	
	public static void gotoPrevPage(WebDriver webDriver)
	{
		WebElement ele = webDriver.findElement(By.xpath("/html/body/div[3]/div/div[1]/div/nav"));
		ele = ele.findElement(By.tagName("a"));
		System.out.println(ele.getText());
		
		String href = ele.getAttribute("href");
		
		webDriver.get(href);
		
		try {
			int sleepTime = new Random().nextInt(18000);
			System.out.println(sleepTime);
			
			Thread.sleep(sleepTime);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
		gotoPrevPage(webDriver);
	}

}
[/codesyntax]
  • 查找iFrame中的元素
如果你要找的元素在iFrame的话,就无法直接通过id或者css等来找到。必须先找到iframe,然后再查找对应的元素。 webDriver.get("http://surenpi.com"); WebDriver frame = webDriver.switchTo().frame("cproIframe2004"); WebElement ele = frame.findElement(By.id("res0")); ele.click();
  • 如何关闭新打开的窗口
下面是代码片段,先打开一个弹出框,然后关闭弹出框,返回到之前的页面。 [codesyntax lang="java"]
public static void findAdFrame(WebDriver webDriver)
{
	WebDriver frame = webDriver.switchTo().frame("cproIframe2004");
	
	WebElement ele = frame.findElement(By.id("res0"));
	ele.click();
	
	String webHandle = webDriver.getWindowHandle();
	String title = webDriver.switchTo().window(webHandle).getTitle();
	
	for(String handle : webDriver.getWindowHandles())
	{
		WebDriver handleDriver = webDriver.switchTo().window(handle);
		String handleTitle = handleDriver.getTitle();
		if(!title.equals(handleTitle))
		{
			handleDriver.close();
		}
	}
	
	webDriver.switchTo().window(webHandle);
}
[/codesyntax]
  • 窗口设置
handleDriver.manage().window().setSize(new Dimension(1, 1)); handleDriver.manage().window().setPosition(new Point(0, 0));
  • 滚动到执行元素
WebElement ele = webDriver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div/nav")); ((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView();", ele);
  •  Python语言的Helloworld
  • 参考
http://www.ibm.com/developerworks/cn/web/wa-selenium2/ http://www.cnblogs.com/sunada2005/archive/2013/12/22/3486314.html http://www.ithov.com/linux/133271.shtml http://www.cnblogs.com/qingchunjun/p/4208159.html

本文转载自:http://surenpi.com/2014/09/02/selenium/

素人派
粉丝 26
博文 1907
码字总数 10223
作品 6
东城
程序员
私信 提问
2.1 Selenium 家族介绍

从图片我们可以看到Selenium已经走过了3大版本,从selenium 1.0 到selenium 3.0 。 这个大版本的变个历程我可以跟大伙简单讲讲: Selenium 1.0 Selenium1.0 源于ThoughtWorks公司,后跟googl...

米阳MeYoung
2018/04/23
0
0
Selenium 2.26 发布,集成测试工具

Selenium 2.26 支持最新的 Firefox 16 版本,详情请看 changelog! Selenium (SeleniumHQ) 是 thoughtworks公司的一个集成测试的强大工具。 一、Selenium 的版本 Selenium 现在存在2个版本,一...

oschina
2012/11/03
1K
1
Selenium 2.8 发布,集成测试工具

Selenium 2.8 发布了,该版本包含大量、非常大量的bug修复列表。 Selenium (SeleniumHQ) 是 thoughtworks公司的一个集成测试的强大工具。 一、Selenium 的版本 Selenium 现在存在2个版本,一...

红薯
2011/10/07
611
0
解决importerror: cannot import name webdriver问题

1.首先需要知道当前selenium的目录。 新建任意python文件,内容如下: 打印出来的文件路径为 2.寻找同名文件夹及文件 在当前目录有个名为selenium的文件,Python会先导入这个文件,然后再导入...

北_木
2016/02/17
1K
0
Selenium系列----->IDE安装和使用链接整理

Selenium IDE:http://www.yiibai.com/selenium/seleniumide.html Selenium私房菜(新手入门教程):http://wenku.baidu.com/link?url=aLmvhpk-FmYJwn1ZtUylPo7tJNnqszSvlXhwHqkZDds6rX9mPtI6......

智能小松鼠
2015/02/17
223
0

没有更多内容

加载失败,请刷新页面

加载更多

Echars鼠标点击事件多次触发

本文转载于:专业的前端网站➭Echars鼠标点击事件多次触发 gChart.on('click', function (params) { if (params.componentSubType == "bar" && params.componentType == "serie......

前端老手
27分钟前
4
0
springboot2.0.6(附) 解析META-INF/spring.factories通过系统加载类获取对应的 class 的全限定名称

在 SpringBoot中是通过getSpringFactoriesInstances(Class<T> type)方法获取所有classpath下面的META-INF/spring.factories文件,然后根据type值找到对应的 class 的全限定名称列表。下面我来...

小亮89
29分钟前
4
0
zk工厂方法实现NIOServerCnxnFactory

NIOServerCnxnFactory类 内部类 AbstractSelectThread AcceptThread SelectorThread 属性 ZOOKEEPER_NIO_SESSIONLESS_CNXN_TIMEOUT 10s session过期时间 ZOOKEEPER_NIO_NUM_SELECTOR_THREADS......

writeademo
32分钟前
4
0
天猫精灵业务如何使用机器学习PAI进行模型推理优化

作者:如切,悟双,楚哲,晓祥,旭林 引言 天猫精灵(TmallGenie)是阿里巴巴人工智能实验室(Alibaba A.I.Labs)于2017年7月5日发布的AI智能语音终端设备。天猫精灵目前是全球销量第三、中国...

阿里云官方博客
40分钟前
6
0
BJL技巧之大路馆擦法—《利辰逸》

很多朋友刚玩百佳时间不长,不知道如何看路,今 天我就来简单的讲下看大路的方法。 都是前辈教的,这里我只是简单复述一下。 大路的观察方法有以下几种: 先从庄闲的数量变化说起。 庄闲的强...

那女孩对我说
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部