Selenium 代码收集
[转载]使用Selenium2测试含有iframe的Ajax网页
原文地址:http://www.cnblogs.com/hexin0614/archive/2012/03/24/2415670.html
1.设置 Chrome 启动参数的实例脚本源代码, 忽略安全证书:
1 public static ChromeOptions chromeOptions(){
2 ChromeOptions options = new ChromeOptions();
3 DesiredCapabilities capabilities = DesiredCapabilities.chrome();
4 capabilities.setCapability("chrome.switches", Arrays.asList("--start-maximized"));
5 options.addArguments("--test-type", "--start-maximized");
6 options.addArguments("--test-type", "--ignore-certificate-errors");
7
8 return options;

1 <span style="white-space: normal; ">test.html</span>
2 <html>
3 <head><title>Test Popup Window</title></head>
4 <body>
5 <a id = "51" href = "http://www.51.com/" target = "_blank">Let's go!</a>
6 </body>
7 </html>

import java.util.Iterator;
import java.util.Set; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver; public class PopupWindowTest {
public static void main(String[] args) {
System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe");
WebDriver dr = new FirefoxDriver();
String url ="\\Your\\Path\\to\\main.html";
dr.get(url);
dr.findElement(By.id("51")).click(); //得到当前窗口的句柄
String currentWindow = dr.getWindowHandle();
//得到所有窗口的句柄
Set<String> handles = dr.getWindowHandles(); Iterator<String> it = handles.iterator();
while(it.hasNext()){
String handle = Iter.next();
if(currentWindow.equals(handle)) continue;
WebDriver window = dr.switchTo().window(handle);
System.out.println("title,url = "+window.getTitle()+","+window.getCurrentUrl());
}
} }
如果scrollTop=0 时,滚动条就会默认在最上方 javascript{this.browserbot.getUserWindow()document.getElementById("text").scrollTop=10000}
#coding=utf-8 from selenium import webdriver import time #访问百度 driver=webdriver.Firefox() driver.get("http://www.baidu.com") #搜索 driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id("su").click() time.sleep(3) #将页面滚动条拖到底部 js="var q=document.documentElement.scrollTop=10000" driver.execute_script(js) time.sleep(3) #将滚动条移动到页面的顶部 js="var q=document.documentElement.scrollTop=0" driver.execute_script(js) time.sleep(3) driver.quit()
1 WebElement target = driver.findElement(By.xpath(xPathExpression)); 2 ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", target);
package com.example.tests;
Naming convention 文件命名规范
一般采用,对像加行为的描述,也用附加特定条件或范围的。也可以将行为放在前面。 DRY 原则 (imperative or declarative)
将相同步骤cucumber 变成一个step,即复用你的cucumber steps Cucumber steps基本规范
Cucumber的steps尽量用人类看得懂的语言,所有 正则表达式,css, xpath,等各种代码不应该在cucumber steps中出现。需要时,就另外写一个steps封装一下就好。 是否按标准的User story写背景和description
一种写法是 As xxx Role, I would do yyy so that zzz 这种写法会对项目新成员会有一定的帮助,不好的地方就是维护成本了,所以那几个开源项目都没有严格按照User story的写法,只是简单完成即可。我偏向是简单写,直观明了。 Capybara
这个应该是默认的了,The cucumber book中,提及到为什么不用webrat和selenium,在这里就不废话了。
运行单个cucumber
cucumber features/billing/credit_card.feature:104 -f progress -r features
Cucumber rerun 重复运行出错的scenario
$ cucumber -f rerun --out rerun.txt
#结果 features/one.feature:367 features/another.feature:91:117
Selenium 代码收集的更多相关文章
- Java的selenium代码随笔(8)
Selenium截图方法一: Selenium中截图类TakeScreenshout,这个类主要是获取浏览器窗体内的内容,不包括浏览器的菜单和桌面的任务栏区域,我们用百度首页来截图,看看截图效果. F ...
- 根据业务摸索出的一个selenium代码模版(python)
前言 总算入行上班几个月了,不得不说业务是真的不消停啊.. 本人工作上经常遇到一种场景:为甲方做自动化接口处理工具,登录需要短信验证码,, 嘛算是摸索出了一套selenium代码模板,主要解决如下痛点 ...
- WooCommerce代码收集
修改首页和分类页面每页产品数量 每页显示多少产品默认跟随设置 » 阅读设置 » 博客页面至多显示的值,若要产品索引页和博文索引页使用不同的设置,可以使用下面的代码为产品索引页单独设置每页产品数. ad ...
- swift 经典代码收集 和 赏析
代码1:protocol PickableEnum { var displayName: String { get } var permanentID: String { get } static v ...
- VB代码收集
1.随机获取5位验证码? 需求: 创建一个Label1:名称为随机验证码生成 创建一个Label2:名称为为空,属性BorderStyle=1 创建一个CommandButton:名称为获取随机码 代 ...
- 使用jQuery获取radio/checkbox组的值的代码收集
<!-- $("document").ready(function(){ $("#btn1").click(function(){ $("[na ...
- python selenium 代码
from selenium import webdriver from selenium.common.exceptions import TimeoutException, NoSuchElemen ...
- (转) Unity3D常用代码收集总结
//创建一个名为"Player"的游戏物体 //并给他添加刚体和立方体碰撞器. player=new GameObject("Player"); player. ...
- IOS代码收集
http://mobile.51cto.com/hot-410417.htm 退回输入键盘: - (BOOL) textFieldShouldReturn:(id)textField{ [textFi ...
随机推荐
- ThreadLocal详解(实现多线程同步访问变量)
ThreadLocal翻译成中文比较准确的叫法应该是:线程局部变量. 这个玩意有什么用处,或者说为什么要有这么一个东东?先解释一下,在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线 ...
- C# JSon转换
1. 先添加System.Web.Extensions.dll引用 var js = new System.Web.Script.Serialization.JavaScriptSerialize ...
- springMVC-数据绑定流程
1.Spring MVC主框架将ServletRequest对象以及目标方法的入参实例传递给WebDataBinderFactory实例,以创建DataBinder(数据绑定器)实例对象 2.Data ...
- ES5/ES6的区别研究(ECMAScript)
我所理解的概念应该是语法的区别和特性的区别 这里是ECMAScript的解析http://baike.baidu.com/item/ECMAScript 参考: (ES6)http://es6.rua ...
- Windows、Linux下文件操作(写、删除)错误的产生原因、及解决方法
catalog . 引言 . Linux平台上涉及的File IO操作 . Windows平台上涉及的File IO操作 0. 引言 本文试图讨论在windows.linux操作系统上基于C库进行文件 ...
- PHP框架中的日志系统
现在在一家公司做PHP后台开发程序猿(我们组没有前端,做活动时会做前端的东西),刚开始到公司的时候花2个周赶出了一个前端加后台的活动(记得当时做不出来周末加了两天班...),到现在过去4个多月了,可以 ...
- HDU 1425 sort(堆排序/快排/最大堆/最小堆)
传送门 Description 给你n个整数,请按从大到小的顺序输出其中前m大的数. Input 每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不 ...
- django views中提示cannot convert dictionary update sequence element #0 to a sequence错误
def message(request): message_list = MessageBoard.objects.all().order_by('-pk') return render(reques ...
- POJ2635The Embarrassed Cryptographer(大数取余+素数筛选+好题)
题目链接 题意:K是由两个素数乘积,如果最小的素数小于L,输出BAD最小的素数,否则输出GOOD 分析 素数打表将 L 大点的素数打出来,一定要比L大,然后就开始枚举,只需K对 素数 取余 看看是否为 ...
- Linux Basis --- commands of vi
EDIT mode to GENERAL mode: press ESC general mode: CLOSE FILE :q! :force to close the file but no ...