2 new revisions:
Revision: 160e527c967e
Author: Pekka Klärck
Date: Tue May 8 02:32:05 2012
Log: Version 2.9
http://code.google.com/p/robotframework-seleniumlibrary/source/detail?r=160e527c967e
Revision: 65f7c3170bd0
Author: Pekka Klärck
Date: Tue May 8 02:32:13 2012
Log: Added tag 2.9 for changeset 160e527c967e
http://code.google.com/p/robotframework-seleniumlibrary/source/detail?r=65f7c3170bd0
==============================================================================
Revision: 160e527c967e
Author: Pekka Klärck
Date: Tue May 8 02:32:05 2012
Log: Version 2.9
http://code.google.com/p/robotframework-seleniumlibrary/source/detail?r=160e527c967e
Modified:
/doc/SeleniumLibrary.html
/src/SeleniumLibrary/version.py
=======================================
--- /doc/SeleniumLibrary.html Mon Dec 19 01:29:20 2011
+++ /doc/SeleniumLibrary.html Tue May 8 02:32:05 2012
@@ -1,2325 +1,276 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
-<title>SeleniumLibrary</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework trunk 20120326 (Python 2.6.6 on linux2)"
name="Generator">
+<link rel="icon" type="image/x-icon"
href="data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAEAAAAAAAAAAAAAAAJEBoACtnfgA5cYYAERsiAEx2lAAbKkQAcazBACZCVwAcM1cAK0ucAAMDBQAnQncASG+FABkoVQAyWmgA6f8SgvH/Ij99+GLyIinyJfn/Yi//KSLzUy9iZogpIld3/4JVVTkid7vyUjNVNVJEAGOZ6Z7pXwAABpmZkRiLAAAGiJZpmGAAAEEt3SXdxAAATC7o/u3EAAC8MRZpjasAAAY1VVVTYAAABKqqqqpAAAAADKqq4AAAAAAAv4sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMADAADgAwAA4AcAAOAHAADgBwAAwAcAAOAHAADgDwAA8A8AAPg/AAD+fwAA">
<style media="all" type="text/css">
body {
- background: white;
- color: black;
- font-size: small;
- font-family: sans-serif;
- padding: 0.1em 0.5em;
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0.1em 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
}
.libdoc {
- white-space: pre-wrap;
+ white-space: pre-wrap;
}
a.name,
span.name {
- font-style: italic;
+ font-style: italic;
}
a, a:link, a:visited {
- color: #c30;
+ color: #c30;
}
a:hover, a:active {
- text-decoration: underline;
- color: black;
+ text-decoration: underline;
+ color: black;
}
div.shortcuts {
- margin: 1em 0em;
- font-size: 0.9em;
+ margin: 1em 0em;
+ font-size: 0.9em;
}
div.shortcuts a {
- text-decoration: none;
- color: black;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
}
div.shortcuts a:hover {
- text-decoration: underline;
+ text-decoration: underline;
}
table.keywords {
- border: 2px solid black;
- border-collapse: collapse;
- empty-cells: show;
- margin: 0.3em 0em;
- width: 100%;
+ border: 2px solid black;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0em;
+ width: 100%;
}
table.keywords th, table.keywords td {
- border: 2px solid black;
- padding: 0.2em;
- vertical-align: top;
+ border: 2px solid black;
+ padding: 0.2em;
+ vertical-align: top;
}
table.keywords th {
- background: #bbb;
- color: black;
+ background: #bbb;
+ color: black;
}
table.keywords
td.kw {
- width: 150px;
- font-weight: bold;
+ width: 150px;
+ font-weight: bold;
}
table.keywords td.arg {
- width: 300px;
- font-style: italic;
-}
-table.doc {
- border: 1px solid black;
- background: transparent;
- border-collapse: collapse;
- empty-cells: show;
- font-size: 0.85em;
-}
-table.doc td {
- border: 1px solid black;
- padding: 0.1em 0.3em;
- height: 1.2em;
-
-}
-#footer {
- font-size: 0.9em;
+ width: 300px;
+ font-style: italic;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* JavaScript disabled box */
+#javascript_disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: #2A2A2E;
+ border: 1px solid #9A9A9E;
+ background: #FAFAFF;
+}
+#javascript_disabled h1 {
+ width: 100%;
+}
+#javascript_disabled ul {
+ font-size: 1.2em;
+}
+#javascript_disabled li {
+ margin: 0.5em 0;
+}
+#javascript_disabled b {
+ font-style: italic;
+}
+/* HTML formatted by Robot. */
+table.robotdoc, pre.robotdoc, hr.robotdoc {
+ margin: 0.5em 1em;
+}
+table.robotdoc {
+ border: 1px solid gray;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.85em;
+}
+table.robotdoc td {
+ border: 1px solid gray;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+pre.robotdoc {
+ font-size: 1.1em;
+ background: #F4F4FF;
+}
+img.robotdoc {
+ border: 1px solid gray;
+}
+hr.robotdoc {
+ background: gray;
+ height: 1px;
+ border: 0;
}
</style>
<style media="print" type="text/css">
body {
- margin: 0px 1px;
- padding: 0px;
- font-size: 10px;
+ margin: 0px 1px;
+ padding: 0px;
+ font-size: 10px;
}
a {
- text-decoration: none;
+ text-decoration: none;
}
</style>
+<script type="text/javascript">
+/*!
+ * jQuery JavaScript Library v1.6.1
+ *
http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ *
http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu May 12 15:04:36 2011 -0400
+ */
+(function(a,b){function cy(a){return
f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function
cv(a){if(!cj[a]){var
b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"|
|d===""){ck||
(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl|
|!ck.createElement)cl=(ck.contentWindow||
ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return
cj[a]}function cu(a,b){var
c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return
c}function ct(){cq=b}function cs(){setTimeout(ct,0);return
cq=f.now()}function ci(){try{return new
a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return
new a.XMLHttpRequest}catch(b){}}function
cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var
d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h
in a.converters)typeof
h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else
if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in
e){j=o.split(" ");if(j[0]===l||
j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No
conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return
c}function ca(a,c,d){var
e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in
d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||
c.getResponseHeader("content-type"));if(h)for(i in
e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i
in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||
k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function
b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||
bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||
f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof
b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function
b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var
h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k|
|!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||
g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k|
|!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return
function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var
d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)|
|"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var
d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return
e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||
0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||
0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function
bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text|
|b.textContent||b.innerHTML|
|"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function
bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function
bl(a){if(a.type==="checkbox"||
a.type==="radio")a.defaultChecked=a.checked}function
bk(a){return"getElementsByTagName"in
a?a.getElementsByTagName("*"):"querySelectorAll"in
a?a.querySelectorAll("*"):[]}function bj(a,b){var
c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else
if(c!=="input"||
a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else
if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else
a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function
bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var
c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var
g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var
h in g)for(var
i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function
bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||
a.appendChild(a.ownerDocument.createElement("tbody")):a}function
X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var
e=!!b.call(a,d,a);return e===c});if(b.nodeType)return
f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var
d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return
f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return
f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||
a.parentNode.nodeType===11}function
O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function
N(a){var
b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this|
|!r||!r.live||a.target.disabled||
a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|
\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|
$)")),a.liveFired=this;var
s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n|
|
n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"|
|
g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d|
|
d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1|
|
a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return
b}}function L(a,c,d){var
e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function
F(){return!0}function E(){return!1}function m(a,c,d){var
e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"|
|!f.data(a,g,b,!0))&&(d==="mark"|
|!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function
l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function
k(a,c,d){if(d===b&&a.nodeType===1){var
e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof
d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else
d=b}return d}var
c=a.document,d=a.navigator,e=a.location,f=function(){function
H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var
e=function(a,b){return new
e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|
#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|
u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|
-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[
\/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie)
([\w.]+)/,v=/(mozilla)(?:.*?
rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var
g,h,j,k;if(!a)return
this;if(a.nodeType){this.context=this[0]=a,this.length=1;return
this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return
this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||
a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d
instanceof e?d[0]:d,k=d?d.ownerDocument||
d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return
e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(
h.id!==g[2])return
f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return
this}return!d||d.jquery?(d||
f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return
f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return
e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return
this.length},toArray:function(){return
D.call(this,0)},get:function(a){return
a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var
d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return
d},each:function(a,b){return
e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return
this},eq:function(a){return
a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return
this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return
this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return
this.pushStack(e.map(this,function(b,c){return
a.call(b,c,b)}))},end:function(){return this.prevObject||
this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var
a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof
i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof
i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c
in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||
(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return
i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return
e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait|
|a!==!0&&!e.isReady){if(!c.body)return
setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return
setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else
if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var
b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return
e.type(a)==="function"},isArray:Array.isArray||function(a){return
e.type(a)==="array"},isWindow:function(a){return a&&typeof
a=="object"&&"setInterval"in a},isNaN:function(a){return a==null|
|!m.test(a)||isNaN(a)},type:function(a){return
a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||
e.type(a)!=="object"||a.nodeType||
e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var
c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var
b in a)return!1;return!0},error:function(a){throw
a},parseJSON:function(b){if(typeof b!="string"||!b)return
null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return
a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new
Function("return "+b))();e.error("Invalid
JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new
DOMParser,c=d.parseFromString(b,"text/xml")):(c=new
ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d|
|!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid
XML: "+b);return
c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||
function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return
a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var
f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in
a)if(c.apply(a[f],d)===!1)break}else
for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in
a)if(c.call(a[f],f,a[f])===!1)break}else
for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return
a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return
a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var
c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||
d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return
c},inArray:function(a,b){if(F)return F.call(b,a);for(var
c=0,d=b.length;c<d;c++)if(b[c]===a)return
c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof
c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else
while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var
d=[],e;c=!!c;for(var
f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return
d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||
j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||
e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else
for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return
h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var
d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var
f=D.call(arguments,2),g=function(){return
a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||
e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof
c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return
a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var
k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return
i?g(a[0],c):b},now:function(){return(new
Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||
t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||
[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function
a(b,c){return new
a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f
instanceof e&&!(f instanceof a)&&(f=a(f));return
e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return
a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp
Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return
e}(),g="done fail isResolved isRejected promise then always
pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var
a=[],b,c,d,e={done:function(){if(!d){var
c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return
this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||
[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return
this},resolve:function(){e.resolveWith(this,arguments);return
this},isResolved:function(){return!!c|
|!!b},cancel:function(){d=1,a=[];return this}};return
e},Deferred:function(a){var
b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return
this},always:function(){return
b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return
f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var
e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return
d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return
a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return
b},when:function(a){function i(a){return
function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||
g.resolveWith(g,h.call(b,0))}}var
b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e|
|g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return
g.promise()}}),f.support=function(){var
a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML="
<link/><table></table><a href='/a'
style='top:1px;float:left;opacity:.55;'>a</a><input
type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d|
|!d.length|
|!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete
a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function
b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q
in
m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in
a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div
style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td
style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)|
|{marginRight:0}).marginRight,10)||
0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q
in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||
(a.setAttribute(p,"return;"),r=typeof
a[p]=="function"),j[q+"Bubbles"]=r;return
j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|
\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var
g=f.expando,h=typeof
c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l|
|e&&l&&!k[l][g])&&h&&d===b)return;l||
(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||
(k[l].toJSON=f.noop));if(typeof c=="object"||typeof
c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]|
|
(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return
i[g]&&i[g].events;return
h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var
e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var
j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete
h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||
h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||
(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete
b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return
f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var
b=f.noData[a.nodeName.toLowerCase()];if(b)return
b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var
d=null;if(typeof
a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var
e=this[0].attributes,g;for(var
h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return
d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var
j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return
d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var
b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return
this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c|
|"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||
0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d|
|"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||
1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c|
|"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||
f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||
[]}},dequeue:function(a,b){b=b||"fx";var
c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length|
|
(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof
a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return
this.each(function(){var
b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return
this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]|
|a:a,b=b||"fx";return this.queue(b,function(){var
c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return
this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||
d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var
d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)|
|(f.data(e[g],j,b,!0)||
f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return
d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|
input)$/i,r=/^(?:button|input|object|select|
textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|
controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|
selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return
f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return
this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return
f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||
a;return this.each(function(){try{this[a]=b,delete
this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return
this.each(function(b){var
c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof
a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var
e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var
g=" "+e.className+" ",h=e.className;for(var
i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return
this},removeClass:function(a){if(f.isFunction(a))return
this.each(function(b){var
c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof
a=="string"||a===b){var c=(a||"").split(o);for(var
d=0,e=this.length;d<e;d++){var
g=this[d];if(g.nodeType===1&&g.className)if(a){var
h=(" "+g.className+" ").replace(n," ");for(var
i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else
g.className=""}}return this},toggleClass:function(a,b){var c=typeof
a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var
d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return
this.each(function(){if(c==="string"){var
e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else
if(c==="undefined"||
c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className|
|a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var
b=" "+a+" ";for(var
c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var
c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]|
|f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return
d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return
this.each(function(d){var
e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof
h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return
a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||
f.valHooks[this.type];if(!c||!("set"in c)||
c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var
b=a.attributes.value;return!b||
b.specified?a.value:a.text}},select:{get:function(a){var
b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return
null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var
j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled|
|!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return
b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return
d},set:function(a,b){var
c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length|
|(a.selectedIndex=-1);return
c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var
g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return
f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1|
|!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||
typeof
d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")|
|u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return
b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return
h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return
i.get(a,c);h=a.getAttribute(c);return
h===null?b:h},removeAttr:function(a,b){var
c;a.nodeType===1&&(b=f.attrFix[b]||
b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]|
|b)in
a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type
property can't be changed");else
if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var
c=a.value;a.setAttribute("type",b),c&&(a.value=c);return
b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return
c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||
s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var
e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1|
|!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return
d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in
h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return
a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var
d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in
a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return
c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return
v.get(a,b);return
a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return
v.set(a,b,c);a.value=b}},f.support.getSetAttribute||
(f.attrFix=f.propFix,v=
f.attrHooks.name=f.valHooks.button={get:function(a,c){var
d;d=a.getAttributeNode(c);return
d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var
d=a.getAttributeNode(c);if(d){d.nodeValue=b;return
b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return
c}}})})),f.support.hrefNormalized||
f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var
d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||
(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||
b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||
(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var
b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn|
|
f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return
a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return
a.checked=f.inArray(f(a).val(),b)>=0}})});var
x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|
select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return
a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else
if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||
(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j|
|(i.events=j={}),k||(i.handle=k=function(a){return typeof
f!="undefined"&&(!a||
f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var
l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid|
|(h.guid=d.guid);var o=j[l],p=f.event.special[l]||
{};if(!o){o=j[l]=[];if(!p.setup||
p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid|
|
(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var
g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s|
|!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof
c=="string"&&c.charAt(0)==="."){c=c||"";for(h in
t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l|
|(m=h.split("."),h=m.shift(),n=new RegExp("(^|
\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|
$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||
n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]|
|{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||
n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0|
|e!=null&&p.length===1)(!o.teardown||
o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete
t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete
s.events,delete
s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var
h=c.type||
c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]|
|!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new
f.Event(h,c):new
f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new
RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g|
|!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var
a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem
+)});return}if(e.nodeType===3||
e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var
k=e,l=h.indexOf(":")<0?"on"+h:"";do{var
m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode|
|k.ownerDocument||
k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var
n,o=f.event.special[h]||{};if((!o._default||
o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"|
|!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return
c.result}},handle:function(c){c=f.event.fix(c||a.event);var
d=((f._data(this,"events")||{})[c.type]||
[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var
h=0,i=d.length;h<i;h++){var j=d[h];if(e||
c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var
k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return
c.result},props:"altKey attrChange attrName bubbles button cancelable
charCode clientX clientY ctrlKey currentTarget data detail eventPhase
fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY
pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey
srcElement target toElement view wheelDelta
which".split(" "),fix:function(a){if(a[f.expando])return a;var
d=a;a=f.Event(d);for(var
e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||
(a.target=a.srcElement||
c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var
h=a.target.ownerDocument||
c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||
j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||
0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||
j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||
a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return
a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return
new
f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented|
|a.returnValue===!1||
a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var
a=this.originalEvent;!a||
(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var
a=this.originalEvent;!a||
(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var
G=function(a){var
b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles|
|
(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var
b=a.target,c=b.type;(c==="submit"||
c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var
b=a.target,c=b.type;(c==="text"||
c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else
return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var
I,J=function(a){var b=a.type,c=a.value;b==="radio"||
b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return
a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return
c},K=function(c){var
d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"|
|d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||
g===e)return;if(e!=null||
g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var
b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||
f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var
b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")|
|a.keyCode===32&&(c==="checkbox"||c==="radio")||
c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var
b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var
c in I)f.event.add(this,c+".specialChange",I[c]);return
z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return
z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles|
|f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var
c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var
d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var
g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return
this}if(arguments.length===2||
d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return
e.apply(this,arguments)},g.guid=e.guid||
f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var
i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return
this}}),f.fn.extend({unbind:function(a,b){if(typeof
a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else
for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return
this},delegate:function(a,b,c,d){return
this.live(b,c,d,a)},undelegate:function(a,b,c){return
arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return
this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return
f.event.trigger(a,b,this[0],!0)},toggle:function(a){var
b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var
e=(f.data(this,"lastToggle"+a.guid)||
0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return
b[e].apply(this,arguments)|
|!1};e.guid=c;while(d<b.length)b[d++].guid=c;return
this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||
a)}});var
M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var
h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof
a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return
this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return
this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a|
|"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]|
|h)+k;if(c==="live")for(var
p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else
n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin
focusout load resize scroll unload click dblclick mousedown mouseup
mousemove mouseover mouseout mouseenter mouseleave change select submit
keydown keypress keyup
error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return
arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function
u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var
j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f|
|(i.sizcache=c,i.sizset=g);if(typeof
b!="string"){if(i===b){j=!0;break}}else
if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function
t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var
j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var
a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|
[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|
\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return
0});var k=function(b,d,f,g){f=f||[],d=d||c;var
h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof
b!="string")return f;var
i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"|
|
x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else
n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object
Array]")if(!u)f.push.apply(f,n);else
if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||
n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else
for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else
p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return
f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var
b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return
a},k.matches=function(a,b){return
k(a,null,null,b)},k.matchesSelector=function(a,b){return
k(b,null,null,[a]).length>0},k.find=function(a,b,c){var
d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var
g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var
j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]|
|"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d|
|(d=typeof
b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var
f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in
l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var
o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else
if(f===!0)continue}if(f)for(var
s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var
t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||
(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else
break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized
expression: "+a};var
l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|
\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|
\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|
\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|
\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|
)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|
first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|
(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|
even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|
\\.)+)(?:\((['"]?)((?:\([^\)]+\)|
[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return
a.getAttribute("href")},type:function(a){return
a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof
b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var
f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e|
|h&&h.nodeName.toLowerCase()===b?h|
|!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof
b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var
g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var
e,f=d++,g=u;typeof
b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var
e,f=d++,g=u;typeof
b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof
b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return
d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof
b.getElementsByName!="undefined"){var
c=[],d=b.getElementsByName(a[1]);for(var
e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return
c.length===0?null:c}},TAG:function(a,b){if(typeof
b.getElementsByTagName!="undefined")return
b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return
a;for(var
g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c|
|d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return
a[1].replace(i,"")},TAG:function(a,b){return
a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||
k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var
b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||
a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||
1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return
a},ATTR:function(a,b,c,d,e,f){var
g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||
a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return
a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])|
|"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var
g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else
if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return
b},POS:function(a){a.unshift(!0);return
a}},filters:{enabled:function(a){return
a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return
a.disabled===!0},checked:function(a){return
a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return
a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var
b=a.getAttribute("type"),c=a.type;return
a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||
b===null)},radio:function(a){return
a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return
a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return
a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return
a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var
b=a.nodeName.toLowerCase();return(b==="input"||
b==="button")&&"submit"===a.type},image:function(a){return
a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var
b=a.nodeName.toLowerCase();return(b==="input"||
b==="button")&&"reset"===a.type},button:function(a){var
b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||
b==="button"},input:function(a){return/input|select|textarea|
button/i.test(a.nodeName)},focus:function(a){return
a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return
b===0},last:function(a,b,c,d){return
b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return
b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return
b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return
c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var
e=b[1],f=l.filters[e];if(f)return
f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||
k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var
h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var
c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var
e=b[2],f=b[3];if(e===1&&f===0)return!0;var
g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var
i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var
j=a.nodeIndex-f;return
e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return
a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return
b==="*"&&a.nodeType===1||
a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||
a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var
c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return
d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|
="?e===g||
e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var
e=b[2],f=l.setFilters[e];if(f)return
f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o
in l.match)l.match[o]=new
RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new
RegExp(/(^(?:.|\r|
\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var
p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return
b}return
a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var
c=0,d=b||[];if(e.call(a)==="[object
Array]")Array.prototype.push.apply(d,a);else if(typeof
a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else
for(;a[c];c++)d.push(a[c]);return d}}var
r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return
0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return
a.compareDocumentPosition?-1:1;return
a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return
0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var
c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return
s(a,b);if(!h)return-1;if(!i)return
1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var
k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return
k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var
d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return
1}),k.getText=function(a){var b="",c;for(var
d=0;a[d];d++)c=a[d],c.nodeType===3||
c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return
b},function(){var a=c.createElement("div"),d="script"+(new
Date).getTime(),e=c.documentElement;a.innerHTML="<a
name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(
l.find.ID=function(a,c,d){if(typeof
c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return
e?
e.id===a[1]||typeof
e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},
l.filter.ID=function(a,b){var
c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return
a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var
a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var
c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var
e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a
href='#'></a>",a.firstChild&&typeof
a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return
a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var
a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p
class='TEST'></p>";if(!b.querySelectorAll||
b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||
c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|
^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||
e.nodeType===9)){if(h[1])return
p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return
p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return
p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i|
|!i.parentNode)return p([],f);if(
i.id===h[3])return p([i],f)}try{return
p(e.querySelectorAll(b),f)}catch(j){}}else
if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var
m=e,n=e.getAttribute("id"),o=n||
d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r|
|q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||
m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in
a)k[e]=a[e];b=null}}(),function(){var
a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||
a.webkitMatchesSelector||a.msMatchesSelector;if(b){var
d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e|
|!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||
a.document&&a.document.nodeType!==11)return f}}catch(g){}return
k(c,null,null,[a]).length>0}}}(),function(){var
a=c.createElement("div");a.innerHTML="<div class='test e'></div><div
class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof
b.getElementsByClassName!="undefined"&&!c)return
b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return
a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var
b=(a?a.ownerDocument||a:0).documentElement;return
b?b.nodeName!=="HTML":!1};var v=function(a,b){var
c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var
g=0,h=f.length;g<h;g++)k(a,f[g],d);return
k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var
P=/Until$/,Q=/^(?:parents|prevUntil|
prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var
b=this,c,d;if(typeof a!="string")return
f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var
e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return
e},has:function(a){var b=f(a);return this.filter(function(){for(var
a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return
this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return
this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof
a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var
c=[],d,e,g=this[0];if(f.isArray(a)){var
h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||
(j[i]=U.test(i)?f(i,b||
this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in
j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return
c}var l=U.test(a)||typeof a!="string"?f(a,b||
this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g|
|!g.ownerDocument||g===b||
g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return
this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof
a=="string")return
f.inArray(this[0],a?f(a):this.parent().children());return
f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof
a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return
this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return
this.add(this.prevObject)}}),f.each({parent:function(a){var
b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return
f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return
f.dir(a,"parentNode",c)},next:function(a){return
f.nth(a,2,"nextSibling")},prev:function(a){return
f.nth(a,2,"previousSibling")},nextAll:function(a){return
f.dir(a,"nextSibling")},prevAll:function(a){return
f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return
f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return
f.dir(a,"previousSibling",c)},siblings:function(a){return
f.sibling(a.parentNode.firstChild,a)},children:function(a){return
f.sibling(a.firstChild)},contents:function(a){return
f.nodeName(a,"iframe")?a.contentDocument||
a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var
e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof
d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1|
|R.test(d))&&Q.test(a)&&(e=e.reverse());return
this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return
b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var
e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1|
|!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return
e},nth:function(a,b,c,d){b=b||1;var
e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return
a},sibling:function(a,b){var
c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return
c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|
hr|img|input|link|meta|
param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|
&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|
=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|
\-\-)/,bg={option:[1,"<select
multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,
bg.th=
bg.td,f.support.htmlSerialize|
|
(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return
this.each(function(b){var
c=f(this);c.text(a.call(this,b,c.text()))});if(typeof
a!="object"&&a!==b)return
this.empty().append((this[0]&&this[0].ownerDocument||
c).createTextNode(a));return
f.text(this)},wrapAll:function(a){if(f.isFunction(a))return
this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var
b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var
a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return
a}).append(this)}return
this},wrapInner:function(a){if(f.isFunction(a))return
this.each(function(b){f(this).wrapInner(a.call(this,b))});return
this.each(function(){var
b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return
this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return
this.parent().each(function(){f.nodeName(this,"body")||
f(this).replaceWith(this.childNodes)}).end()},append:function(){return
this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return
this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return
this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var
a=f(arguments[0]);a.push.apply(a,this.toArray());return
this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return
this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var
a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return
a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||
f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return
this},empty:function(){for(var
a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return
this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return
this.map(function(){return
f.clone(this,a,b)})},html:function(a){if(a===b)return
this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof
a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace|
|!Z.test(a))&&!bg[(_.exec(a)||
["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var
c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else
f.isFunction(a)?this.each(function(b){var
c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return
this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return
this.each(function(b){var
c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof
a!="string"&&(a=f(a).detach());return this.each(function(){var
b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return
this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return
this.remove(a,!0)},domManip:function(a,c,d){var
e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof
j=="string"&&bd.test(j))return
this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return
this.each(function(e){var
g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var
l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||
m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return
this}}),f.buildFragment=function(a,b,d){var
e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof
a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone|
|!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||
(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var
d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return
this}for(var h=0,i=e.length;h<i;h++){var
j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return
this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var
d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent|
|!f.support.noCloneChecked)&&(a.nodeType===1||
a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return
d},clean:function(a,b,d,e){var g;b=b||c,typeof
b.createElement=="undefined"&&(b=b.ownerDocument||
+b[0]&&b[0].ownerDocument||c);var h=[],i;for(var
j=0,k;(k=a[j])!=null;j++){typeof
k=="number"&&(k+="");if(!k)continue;if(typeof
k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var
l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||
bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var
p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var
r;if(!f.support.appendChecked)if(k[0]&&typeof
(r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else
bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type|
|
be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type|
|
h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var
s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return
h},cleanData:function(a){var
b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var
i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var
k in
b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete
j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete
d[c]}}}});var
bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|
^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return
b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return
this;return f.access(this,a,c,!0,function(a,c,d){return
d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var
c=bz(a,"opacity","opacity");return c===""?"1":c}return
a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var
g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||
i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return
j[c]}h=typeof d;if(h==="number"&&isNaN(d)||
d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k|
|!("set"in k)||
(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var
e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||
c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return
e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in
b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in
b)a.style[e]=d[e]},camelCase:function(a){return
a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var
e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return
e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||
e==="auto"?"0px":e}return typeof
e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return
b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||
(f.cssHooks.opacity={get:function(a,b){return
bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)|
|"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var
c=a.style,d=a.currentStyle;c.zoom=1;var
e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter|
|"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight|
|(f.cssHooks.marginRight={get:function(a,b){var
c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return
c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var
d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return
b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return
d}),c.documentElement.currentStyle&&(bB=function(a,b){var
c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d|
|0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return
d===""?"auto":d}),bz=bA||
bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var
b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0|
|!f.support.reliableHiddenOffsets&&(a.style.display||
f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var
bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[
\t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|
password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|
app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|
HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|
textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())|
|[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return
bT.apply(this,arguments);if(!this.length)return this;var
e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var
h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof
c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var
i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return
this},serialize:function(){return
f.param(this.serializeArray())},serializeArray:function(){return
this.map(function(){return
this.elements?f.makeArray(this.elements):this}).filter(function(){return
this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||
bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return
c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:
b.name,value:a.replace(bG,"\r\n")}}):{name:
b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart
ajaxStop ajaxComplete ajaxError ajaxSuccess
ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return
this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g|
|e,e=d,d=b);return
f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return
f.get(a,b,c,"script")},getJSON:function(a,b,c){return
f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var
c in{context:1,url:1})c in b?a[c]=b[c]:c in
f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return
a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml,
text/xml",html:"text/html",text:"text/plain",json:"application/json,
text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"*
text":a.String,"text html":!0,"text json":f.parseJSON,"text
xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function
w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m|
|"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||
a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else
try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c|
|
a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active|
|f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var
d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof
f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||
{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var
c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return
this},getAllResponseHeaders:function(){return
s===2?n:null},getResponseHeader:function(a){var
c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return
c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return
this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return
this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var
b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return
this},d.url=((a||
d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType|
|"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r|
|r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||
(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof
d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var
x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1|
|
c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k|
|
d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?",
*/*; q=0.01":""):d.accepts["*"]);for(u in
d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1|
|s===2)){v.abort();return!1}for(u
in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No
Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return
v},param:function(a,c){var
d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)|
|
a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(
this.name,this.value)});else
for(var g in a)b_(g,a[g],c,e);return
d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var
cc=f.now(),cd=/(\=)\?(&|$)|
\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return
f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var
e=b.contentType==="application/x-www-form-urlencoded"&&typeof
b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)|
|e&&cd.test(b.data))){var
g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script
json"]=function(){g||f.error(h+" was not called");return
g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript,
application/javascript, application/ecmascript,
application/x-ecmascript"},contents:{script:/javascript|
ecmascript/},converters:{"text script":function(a){f.globalEval(a);return
a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var
d,e=c.head||c.getElementsByTagName("head")[0]||
c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c|
|!d.readyState||/loaded|
complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c|
|
g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var
ce=a.ActiveXObject?function(){for(var a in
cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()|
|
ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in
a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain|
|f.support.cors){var d;return{send:function(e,g){var
h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j
in
c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j
in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||
null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||
h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete
cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e|
|g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||
(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var
cj={},ck,cl,cm=/^(?:toggle|show|
hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame|
|a.mozRequestAnimationFrame||
a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||
a===0)return this.animate(cu("show",3),a,b,c);for(var
g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""|
|e==="none")d.style.display=f._data(d,"olddisplay")||""}}return
this},hide:function(a,b,c){if(a||a===0)return
this.animate(cu("hide",3),a,b,c);for(var
d=0,e=this.length;d<e;d++)if(this[d].style){var
g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return
this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof
a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null|
|d?this.each(function(){var
b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return
this},fadeTo:function(a,b,c,d){return
this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var
e=f.speed(b,c,d);if(f.isEmptyObject(a))return
this.each(e.complete,[!1]);a=f.extend({},a);return
this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var
b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i
in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete
a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]|
|b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return
b.complete.call(this);c&&(g==="height"||
g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i
in a)k=new
f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]|
|(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||
1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var
a=f.timers,c=a.length;b||
f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b|
|this.dequeue();return
this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return
this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof
a=="object"?f.extend({},a):{complete:c||!c&&b||
f.isFunction(a)&&a,duration:a,easing:c&&b||
b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof
d.duration=="number"?d.duration:d.duration in
f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return
d},easing:{linear:function(a,b,c,d){return
c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig|
|
{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]|
|
f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style|
|this.elem.style[this.prop]==null))return this.elem[this.prop];var
a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||
b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var
d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c|
|this.unit||
(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"|
|
this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var
b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||
b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g
in
e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide|
|e.show)for(var i in
e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var
a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||
f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"|
|
a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return
f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|
d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in
c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return
this.each(function(b){f.offset.setOffset(this,a,b)});if(!b|
|!b.ownerDocument)return null;if(b===b.ownerDocument.body)return
f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var
e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return
c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop|
|h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||
f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||
f.support.boxModel&&g.scrollLeft||
h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var
b=this[0];if(a)return
this.each(function(b){f.offset.setOffset(this,a,b)});if(!b|
|!b.ownerDocument)return null;if(b===b.ownerDocument.body)return
f.offset.bodyOffset(b);f.offset.initialize();var
c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells|
|!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||
0,m+=parseFloat(c.borderLeftWidth)||
0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)|
|0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||
k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var
a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))|
|0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid
#000;padding:0;width:1px;height:1px;'><div></div></div><table
style='position:absolute;top:0;left:0;margin:0;border:5px solid
#000;padding:0;width:1px;height:1px;' cellpadding='0'
cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20|
|
e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var
b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))|
|0,c+=parseFloat(f.css(a,"marginLeft"))||
0);return{top:b,left:c}},setOffset:function(a,b,c){var
d=f.css(a,"position");d==="static"&&(a.style.position="relative");var
e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||
d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)|
|0,n=parseFloat(i)||
0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in
b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return
null;var
a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))|
|0,c.left-=parseFloat(f.css(a,"marginLeft"))||
0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||
0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||
0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return
this.map(function(){var a=this.offsetParent||
c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return
a})}}),f.each(["Left","Top"],function(a,c){var
d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return
null;g=cy(e);return g?"pageXOffset"in
g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]|
|g.document.body[d]:e[d]}return
this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var
d=c.toLowerCase();f.fn["inner"+c]=function(){return
this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return
this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var
e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return
this.each(function(b){var
c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var
g=e.document.documentElement["client"+c];return
e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||
g}if(e.nodeType===9)return
Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var
h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof
a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ *
http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|
\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var
c={data:e||(e===0||
e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||
null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt|
|c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return
c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var
g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||
{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return
g}});a.fn.extend({tmpl:function(d,c,b){return
a.tmpl(this[0],d,c,b)},tmplItem:function(){return
a.tmplItem(this[0])},template:function(b){return
a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var
g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else
r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return
this}});a.extend({tmpl:function(d,h,e,c){var
i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else
if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return
a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c|
|{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return
a?g(e,c,d,a):null}):[g(e,c,d,h)];return
k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof
a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return
c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b
instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||
a.data(b,"tmpl",o(b.innerHTML));return typeof
c==="string"?(a.template[c]=b):b}return c?typeof
c!=="string"?a.template(null,c):a.template[c]||
a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index,
$value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1)
&& $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else
if(($notnull_1) &&
$1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var
e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function
j(e,g,f){var b,c=f?a.map(f,function(a){return typeof
a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'"
$2'):a:j(a,e,a._ctnt)}):e;if(g)return
c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return
b?b:k(c)}function k(c){var
b=document.createElement("div");b.innerHTML=c;return
a.makeArray(b.childNodes)}function o(b){return new
Function("jQuery","$item","var
$=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{=
$1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|
\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|
\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var
j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||
[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else
f=e=i.$1|
|"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined'
&&
("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g|
|i.$2||"")+"__.push('"})+"');}return __;")}function
n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function
h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function
s(b){var
a=document.createElement("div");a.appendChild(b.cloneNode(true));return
a.innerHTML}function m(o){var
n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function
m(j){var
p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)|
|0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||
f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else
if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete
e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function
o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function
u(a,d,c,b){if(!a)return
l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function
w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var
c=b.options||{};c.wrapped=d;return
a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var
b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d|
|"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||
s(a)})}function t(){var
b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+libdoc = {"doc":"SeleniumLibrary is a web testing library for Robot Test
Automation Framework.\n\nIt uses the Selenium Remote Control tool
internally to control a web browser. See <a
href=\"
http://selenium-rc.openqa.org/\">
http://selenium-rc.openqa.org/</a>
for more information on Selenium tool.\n\nSeleniumLibrary runs tests in a
real browser instance. It should work in most modern browsers and can be
used with both Python and Jython interpreters.\n\n<b>Before running the
tests</b>\n\nPrior to running test cases using SeleniumLibrary, the
Selenium Server must be started. This can be done using keyword <a
href=\"#Start Selenium Server\" class=\"name\">Start Selenium Server</a> or
from the command line by using command: <span class=\"name\">java -jar
/path/to/selenium-server.jar</span>. The Selenium Server is included in the
SeleniumLibrary distribution and can be found under <span
class=\"name\">[PythonLibs]/site-packages/SeleniumLibrary/lib</span>.
Additionally, <a href=\"#Open Browser\" class=\"name\">Open Browser</a>
keyword must be used in order to open browser in the desired location
before any other keyword from the library may be used.\n\n<b>Locating
elements</b>\n\nAll keywords in SeleniumLibrary that need to find an
element on the page take an argument, <span class=\"name\">locator</span>.
In the most common case, <span class=\"name\">locator</span> is matched
against the values of key attributes of the particular element type. For
example, <span class=\"name\">id</span> and <span
class=\"name\">name</span> are key attributes to all elements, and locating
elements is easy using just the <span class=\"name\">id</span> as a <span
class=\"name\">locator</span>.\n\nAsterisk character may be used as a
wildcard in locators, but it only works as the last character of the
expression. In the middle of the locator it is interpreted as
literal '*'.\n\nIt is also possible to give an arbitrary XPath or DOM
expression as <span class=\"name\">locator</span>. In this case, the
expression must be prefixed with either 'xpath='
or 'dom='.\n\nExamples:\n<table class=\"robotdoc\">\n<tr>\n<td>Click
Link</td>\n<td>my link</td>\n<td># Matches if either link text
or 'id', 'name' or 'href' of a link equals 'my
link'</td>\n</tr>\n<tr>\n<td>Page Should Contain Link</td>\n<td>Link id
*</td>\n<td># Passes if the page contain any link starting with 'Link
id'</td>\n</tr>\n<tr>\n<td>Select
Checkbox</td>\n<td>xpath=//table[0]/input[@name='my_checkbox']</td>\n<td>#
Using XPath</td>\n</tr>\n<tr>\n<td>Click
Image</td>\n<td>dom=document.images[56]</td>\n<td># Using a DOM
expression</td>\n</tr>\n</table>\nTable related keywords, such as <a
href=\"#Table Should Contain\" class=\"name\">Table Should Contain</a>,
allow identifying tables either by an id, by a CSS locator, or by an XPath
expression. The XPath support was added in SeleniumLibrary
2.6.\n\nExamples:\n<table class=\"robotdoc\">\n<tr>\n<td>Table Should
Contain</td>\n<td>tableID</td>\n<td>text</td>\n</tr>\n<tr>\n<td>Table
Should Contain</td>\n<td>css=h2.someClass ~
table:last-child()</td>\n<td>text</td>\n</tr>\n<tr>\n<td>Table Should
Contain</td>\n<td>xpath=//table/[@name=\"myTable\"]</td>\n<td>text</td>\n</tr>\n</table>\n<b>Locating
Flex elements</b>\n\nSeleniumLibary 2.6 and newer support testing Adobe
Flex and Flash applications using Flex Pilot tool. For more information,
including the required bootstrapping, see <a
href=\"
http://code.google.com/p/robotframework-seleniumlibrary/wiki/FlexTesting\">
http://code.google.com/p/robotframework-seleniumlibrary/wiki/FlexTesting</a>\n\nBy
default Flex elements are located based on <span class=\"name\">id</span>
they have in Flex source code. Other supported locators are <span
class=\"name\">name</span>, <span class=\"name\">automationName</span>,
<span class=\"name\">text</span>, <span class=\"name\">htmlText</span>,
<span class=\"name\">label</span> and xpath-like <span
class=\"name\">chain</span>. To use them, you need to prefix the value with
the locator type like <span class=\"name\">name=example</span>. Locators
also support <span class=\"name\">*</span> as a
wildcard.\n\nExamples:\n<table class=\"robotdoc\">\n<tr>\n<td>Click Flex
Element</td>\n<td>foo</td>\n<td># Search element by
id</td>\n</tr>\n<tr>\n<td>Click Flex
Element</td>\n<td>name=myName</td>\n<td># Search element by
name</td>\n</tr>\n<tr>\n<td>Click Flex
Element</td>\n<td>label=Hello!</td>\n<td># Search element by label
text</td>\n</tr>\n<tr>\n<td>Click Flex
Element</td>\n<td>chain=id:someId/name:someName</td>\n<td># Search element
first by id and then its child by name</td>\n</tr>\n<tr>\n<td>Click Flex
Element</td>\n<td>name=wild*</td>\n<td># Name with
wildcard</td>\n</tr>\n<tr>\n<td>Click Flex
Element</td>\n<td>chain=name:*llo/name:world</td>\n<td># Chain with
wildcard</td>\n</tr>\n</table>\n<b>Handling page load events</b>\n\nSome
keywords that may cause a page to load take an additional argument <span
class=\"name\">dont_wait</span> that is used to determine whether a new
page is expected to load or not. By default, a page load is expected to
happen whenever a link or image is clicked, or a form submitted. If a page
load does not happen (if the link only executes some JavaScript, for
example), a non-empty value must be given for the <span
class=\"name\">dont_wait</span> argument. How much to wait is determined by
a timeout discussed in the next section.\n\nThere are also some keywords
that may cause a page to load but by default we expect them not to. For
these cases, the keywords have an optional <span class=\"name\">wait</span>
argument, and providing a non-empty value for it will cause the keyword to
wait. An other possibility is using <a href=\"#Wait Until Page Loaded\"
class=\"name\">Wait Until Page Loaded</a> keyword which also accepts a
custom timeout.\n\nExamples:\n<table class=\"robotdoc\">\n<tr>\n<td>Click
Link</td>\n<td>link text</td>\n<td></td>\n<td></td>\n<td># A page is
expected to load.</td>\n</tr>\n<tr>\n<td>Click Link</td>\n<td>another
link</td>\n<td>don't wait</td>\n<td></td>\n<td># A page is not expected to
load.</td>\n</tr>\n<tr>\n<td>Select Radio
Button</td>\n<td>group1</td>\n<td>value1</td>\n<td></td>\n<td># A page is
not expected to load.</td>\n</tr>\n<tr>\n<td>Select Radio
Button</td>\n<td>group2</td>\n<td>value2</td>\n<td>and wait</td>\n<td># A
page is expected to load.</td>\n</tr>\n</table>\n<b>Timeouts</b>\n\nHow
much to wait when a new page is loaded is specified by a timeout that can
be given in <a href=\"#importing\" class=\"name\">importing</a> (default is
5 seconds) or dynamically with <a href=\"#Set Selenium Timeout\"
class=\"name\">Set Selenium Timeout</a> keyword.\n\nThere are also several
<span class=\"name\">Wait ...</span> keywords that take timeout as an
argument. Starting from SeleniumLibrary 2.6 all these timeouts are optional
and the same timeout used with page loads is used as a default.\n\nAll
timeouts can be given as numbers considered seconds (e.g. 0.5 or 42) or in
Robot Framework's time syntax (e.g. '1.5 seconds' or '1 min 30 s'). For
more information about the time syntax see: <a
href=\"
http://robotframework.googlecode.com/svn/trunk/doc/userguide/RobotFrameworkUserGuide.html#time-format\">
http://robotframework.googlecode.com/svn/trunk/doc/userguide/RobotFrameworkUserGuide.html#time-format</a>.\n\n<b>Testing
sites using https</b>\n\nUsually, https works out of the box. However,
there may be trouble with self-signed certificates. We have a Wiki page
describing how to test against these, using Firefox: <a
href=\"
http://code.google.com/p/robotframework-seleniumlibrary/wiki/HandlingSelfSignedCertificates\">
http://code.google.com/p/robotframework-seleniumlibrary/wiki/HandlingSelfSignedCertificates</a>","generated":"2012-05-08
12:31:08","inits":[{"args":"timeout=5.0, server_host=localhost,
server_port=4444, jar_path=None, run_on_failure=Capture
Screenshot","doc":"SeleniumLibrary can be imported with optional
arguments.\n\n<span class=\"name\">timeout</span> is the default timeout
used to wait for page load actions. It can be later set with <a href=\"#Set
Selenium Timeout\" class=\"name\">Set Selenium Timeout</a>\n\n<span
class=\"name\">server_host</span> and <span
class=\"name\">server_port</span> are used to connect to Selenium Server.
Browsers opened with this SeleniumLibrary instance will be attached to that
server. Note that the Selenium Server must be running before <a
href=\"#Open Browser\" class=\"name\">Open Browser</a> keyword can be used.
Selenium Server can be started with keyword <a href=\"#Start Selenium
Server\" class=\"name\">Start Selenium Server</a>. Starting from
SeleniumLibrary 2.6.1, it is possible to give <span
class=\"name\">server_host</span> as a URL with a possible embedded port,
for example <span class=\"name\">
http://192.168.52.1:4444</span>. If <span
class=\"name\">server_host</span> contains port, the value of <span
class=\"name\">server_port</span> is ignored.\n\n<span
class=\"name\">jar_path</span> is the absolute path to the
selenium-server.jar file to be used by the library. If set, a custom,
modified version can be started instead of the default one distributed with
the library.\n\n<span class=\"name\">run_on_failure</span> specifies the
name of a SeleniumLibrary keyword to execute when another SeleniumLibrary
keyword fails. By default <a href=\"#Capture Screenshot\"
class=\"name\">Capture Screenshot</a> will be used to take a screenshot of
the situation. Using any value that is not a keyword name will disable this
feature altogether. See <a href=\"#Register Keyword To Run On Failure\"
class=\"name\">Register Keyword To Run On Failure</a> keyword for more
information about this functionality that was added in SeleniumLibrary
2.5.\n\nBecause there are many optional arguments, it is often a good idea
to use the handy named-arguments syntax supported by Robot Framework 2.5
and later. This is demonstrated by the last two examples
below.\n\nExamples:\n<table
class=\"robotdoc\">\n<tr>\n<td>Library</td>\n<td>SeleniumLibrary</td>\n<td>15</td>\n<td></td>\n<td></td>\n<td>#
Sets default
timeout</td>\n</tr>\n<tr>\n<td>Library</td>\n<td>SeleniumLibrary</td>\n<td></td>\n<td></td>\n<td>4455</td>\n<td>#
Use default timeout and host but specify different
port.</td>\n</tr>\n<tr>\n<td>Library</td>\n<td>SeleniumLibrary</td>\n<td>server_host=
http://192.168.52.1:4444</td>\n<td></td>\n<td></td>\n<td>#
Host as
URL.</td>\n</tr>\n<tr>\n<td>Library</td>\n<td>SeleniumLibrary</td>\n<td>run_on_failure=Nothing</td>\n<td></td>\n<td></td>\n<td>#
Do nothing on
failure.</td>\n</tr>\n</table>","name":"Init","shortdoc":"SeleniumLibrary
can be imported with optional
arguments."}],"keywords":[{"args":"strategy_name,
function_definition","doc":"Adds a custom location strategy.\n\n<span
class=\"name\">strategy_name</span> is the name of the strategy; a prefix
used when addressing an element.\n\n<span
class=\"name\">function_definition</span> is the JavaScript that will be
called. It must return a DOM reference, an array with DOM references, or
null.\n\nTogether with the modified selenium-server.jar it can provide a
new method of locating elements on the page. For example, a jQuery strategy
can be added to locate elements given jQuery selector syntax.\n\nFor jQuery
selector setup see: <a
href=\"
http://code.google.com/p/robotframework-seleniumlibrary/wiki/jQueryElementSelectors\">
http://code.google.com/p/robotframework-seleniumlibrary/wiki/jQueryElementSelectors</a>\n\nExample:\n<table
class=\"robotdoc\">\n<tr>\n<td>Add Location
Strategy</td>\n<td>jquery</td>\n<td>return
Selenium.prototype.locateElementByJQuerySelector(locator, inDocument,
inWindow);</td>\n</tr>\n<tr>\n<td>Page Should Contain
Element</td>\n<td>jquery=div.#data-table</td>\n<td></td>\n</tr>\n</table>","name":"Add
Location Strategy","shortdoc":"Adds a custom location
strategy."},{"args":"text=","doc":"Verifies an alert is present and
dismisses it.\n\nIf <span class=\"name\">text</span> is a non-empty string,
then it is also verified that the message of the alert equals to <span
class=\"name\">text</span>.\n\nWill fail if no alert is present. Note that
when running tests with selenium, the alerts will not be visible in the
browser. Nevertheless, following keywords will fail unless the alert is
dismissed by this keyword or by <a href=\"#Get Alert Message\"
class=\"name\">Get Alert Message</a>.","name":"Alert Should Be
Present","shortdoc":"Verifies an alert is present and dismisses
it."},{"args":"locator, id","doc":"Assigns a temporary identifier to
element specified by <span class=\"name\">locator</span>.\n\nThis is mainly
useful if the locator is complicated/slow XPath expression. Identifier
expires when the page is reloaded.\n\nNew in SeleniumLibrary
2.7.\n\nExample:\n<table class=\"robotdoc\">\n<tr>\n<td>Assign ID to
Element</td>\n<td>xpath=//div[@id=\"first_div\"]</td>\n<td>my
id</td>\n</tr>\n<tr>\n<td>Page Should Contain Element</td>\n<td>my
id</td>\n<td></td>\n</tr>\n</table>","name":"Assign Id To
Element","shortdoc":"Assigns a temporary identifier to element specified by
`locator`."},{"args":"method_name, *args","doc":"Calls a method in the
Selenium remote control API directly.\n\nThis keyword can be used if some
functionality provided by Selenium is not yet exposed as a
keyword.\n\n<span class=\"name\">method_name</span> is the name of the
method to call in the Selenium API and <span class=\"name\">args</span>
specify the arguments it expects.\n\nThe keyword first tries to find a
method in Selenium's Python API provided by the <span
class=\"name\">selenium.py</span> file. If no matching method is found, the
keyword calls the Selenium Server's Remote Controller API directly via the
<span class=\"name\">do_command</span> method in the Python API [1]. In
both cases the keyword returns the return value of the call directly
without any modifications or verifications.\n\nExamples:\n<table
class=\"robotdoc\">\n<tr>\n<td>${ret} =</td>\n<td>Call Selenium
API</td>\n<td>is_element_present</td>\n<td># Python
API</td>\n</tr>\n<tr>\n<td>Call Selenium
API</td>\n<td>double_click</td>\n<td>element_id</td>\n<td># Python
API</td>\n</tr>\n<tr>\n<td>Call Selenium
API</td>\n<td>doubleClick</td>\n<td>element_id</td>\n<td># RC
API</td>\n</tr>\n</table>\n[1] <a
href=\"
http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/python/\">
http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/python/</a>","name":"Call
Selenium Api","shortdoc":"Calls a method in the Selenium remote control API
directly."},{"args":"filename=None, css=background=#CCFFDD","doc":"Takes a
screenshot of the current page and embeds it into the log.\n\n<span
class=\"name\">filename</span> argument specifies the name of the file to
write the screenshot into. It works the same was as with <a href=\"#Capture
Screenshot\" class=\"name\">Capture Screenshot</a>.\n\n<span
class=\"name\">css</span> can be used to modify how the screenshot is
taken. By default the bakground color is changed to avoid possible problems
with background leaking when the page layout is somehow broken.\n\nSelenium
currently supports this keyword out-of-the-box only with Firefox browser.
To make it work with IE, you can start the Selenium Server with <span
class=\"name\">-singleWindow</span> option and use <span
class=\"name\">*ieproxy</span> as the browser. Additionally, the browser
independent <a href=\"#Capture Screenshot\" class=\"name\">Capture
Screenshot</a> keyword can be used instead.\n\nThis keyword was added in
SeleniumLibrary 2.3.","name":"Capture Page Screenshot","shortdoc":"Takes a
screenshot of the current page and embeds it into the
log."},{"args":"filename=None","doc":"Takes a screenshot of the entire
screen and embeds it into the log.\n\nIf no <span
class=\"name\">filename</span> is given, the screenshot is saved into file
<span class=\"name\">selenium-screenshot-<counter>.png</span> under
the directory where the Robot Framework log file is written into. The <span
class=\"name\">filename</span> is also considered relative to the same
directory, if it is not given in absolute format.\n\nWhen running on a
locked Windows machine, the resulting screenshots will be all black. A
workaround is using the <a href=\"#Capture Page Screenshot\"
class=\"name\">Capture Page Screenshot</a> keyword instead.\n\nThere were
some changes to this keyword in the 2.3 release:\n- Possibility to take
screenshots also when the Selenium Server is running on a remote machine
was added.\n- Support for absolute <span class=\"name\">filename</span>
paths was added.\n- Automatic creation of intermediate directories in the
path where the screenshot is saved was removed. <span
class=\"name\">OperatingSystem.Create Directory</span> can be used
instead.","name":"Capture Screenshot","shortdoc":"Takes a screenshot of the
entire screen and embeds it into the
log."},{"args":"locator","doc":"Verifies checkbox identified by <span
class=\"name\">locator</span> is selected/checked.\n\nKey attributes for
checkboxes are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Checkbox Should Be Selected","shortdoc":"Verifies
checkbox identified by `locator` is
selected/checked."},{"args":"locator","doc":"Verifies checkbox identified
by <span class=\"name\">locator</span> is not selected/checked.\n\nKey
attributes for checkboxes are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Checkbox Should Not Be Selected","shortdoc":"Verifies
checkbox identified by `locator` is not
selected/checked."},{"args":"","doc":"Cancel will be selected the next time
<a href=\"#Confirm Action\" class=\"name\">Confirm Action</a> is
used.","name":"Choose Cancel On Next Confirmation","shortdoc":"Cancel will
be selected the next time `Confirm Action` is used."},{"args":"identifier,
file_path","doc":"Inputs the <span class=\"name\">file_path</span> into
file input field found by <span class=\"name\">identifier</span>.\n\nThis
keyword is most often used to input files into upload forms. In normal
usage the file specified with <span class=\"name\">file_path</span> must be
available on the same host where the Selenium Server is running.\n\nAn
alternative usage is specifying the <span class=\"name\">file_path</span>
with an URL (starting with <span class=\"name\">http://</span> or <span
class=\"name\">https://</span>) in which case the file will be downloaded
automatically. The limitations of this method are that it only works on
Firefox and the file must be placed at the root level of a web
server.\n\nExample:\n<table class=\"robotdoc\">\n<tr>\n<td>Choose
File</td>\n<td>my_upload_field</td>\n<td>/home/user/files/trades.csv</td>\n</tr>\n<tr>\n<td>Choose
File</td>\n<td>my_upload_field</td>\n<td><a
href=\"
http://uploadhost.com/trades.csv\">
http://uploadhost.com/trades.csv</a></td>\n</tr>\n</table>\nThe
support for remote files was added in SeleniumLibrary 2.3.2. It uses
Selenium's <span class=\"name\">attach_file</span> method which is
explained at <a
href=\"
http://saucelabs.com/blog/index.php/2009/11/selenium-tip-of-the-week-upload-files-on-browsers-running-over-remote-machines/\">
http://saucelabs.com/blog/index.php/2009/11/selenium-tip-of-the-week-upload-files-on-browsers-running-over-remote-machines/</a>\n\nNote:
This keyword does not seem to work with newer versions of Firefox. <a
href=\"#Press Key\" class=\"name\">Press Key</a> can be used to type
characters into file upload form.","name":"Choose File","shortdoc":"Inputs
the `file_path` into file input field found by
`identifier`."},{"args":"locator, dont_wait=","doc":"Clicks a button
identified by <span class=\"name\">locator</span>.\n\nKey attributes for
buttons are <span class=\"name\">id</span>, <span
class=\"name\">name</span> and <span class=\"name\">value</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements and about meaning of <span
class=\"name\">dont_wait</span> argument.","name":"Click
Button","shortdoc":"Clicks a button identified by
`locator`."},{"args":"locator, dont_wait=, coordinates=None","doc":"Click
element identified by <span class=\"name\">locator</span>.\n\nKey
attributes for arbitrary elements are <span class=\"name\">id</span> and
<span class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating elements and
about meaning of <span class=\"name\">dont_wait</span> argument.\n\nIf you
want to click the element at certain coordinates, you can specify the
position with <span class=\"name\">coordinates</span> argument in format
<span class=\"name\">x,y</span>. Support for coordinates was added in
SeleniumLibrary 2.7.\n\nExamples:\n<table
class=\"robotdoc\">\n<tr>\n<td>Click
Element</td>\n<td>my_id</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Click
Element</td>\n<td>my_id</td>\n<td>and don't
wait</td>\n<td></td>\n</tr>\n<tr>\n<td>Click
Element</td>\n<td>my_id</td>\n<td></td>\n<td>100,150</td>\n</tr>\n<tr>\n<td>Click
Element</td>\n<td>my_id</td>\n<td>coordinates=100,150</td>\n<td># Use named
argument syntax available in RF 2.5 and
newer</td>\n</tr>\n</table>","name":"Click Element","shortdoc":"Click
element identified by `locator`."},{"args":"locator","doc":"Clicks an
element found by <span class=\"name\">locator</span>.\n\nSee <a
href=\"#introduction\" class=\"name\">introduction</a> about rules for
locating Flex elements.","name":"Click Flex Element","shortdoc":"Clicks an
element found by `locator`."},{"args":"locator, dont_wait=","doc":"Clicks
an image found by <span class=\"name\">locator</span>.\n\nKey attributes
for images are <span class=\"name\">id</span>, <span
class=\"name\">src</span> and <span class=\"name\">alt</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements and about meaning of <span
class=\"name\">dont_wait</span> argument.","name":"Click
Image","shortdoc":"Clicks an image found by `locator`."},{"args":"locator,
dont_wait=","doc":"Clicks a link identified by locator.\n\nKey attributes
for links are <span class=\"name\">id</span>, <span
class=\"name\">name</span>, <span class=\"name\">href</span> and link text.
See <a href=\"#introduction\" class=\"name\">introduction</a> for details
about locating elements and about meaning of <span
class=\"name\">dont_wait</span> argument.","name":"Click
Link","shortdoc":"Clicks a link identified by
locator."},{"args":"","doc":"Closes all open browsers and empties the
connection cache.\n\nAfter this keyword new indexes get from Open Browser
keyword are reset to 1.\n\nThis keyword should be used in test or suite
teardown to make sure all browsers are closed.","name":"Close All
Browsers","shortdoc":"Closes all open browsers and empties the connection
cache."},{"args":"","doc":"Closes the current browser.","name":"Close
Browser","shortdoc":"Closes the current browser."},{"args":"","doc":"Closes
currently opened pop-up window.","name":"Close Window","shortdoc":"Closes
currently opened pop-up window."},{"args":"","doc":"Dismisses currently
shown confirmation dialog and returns it's message.\n\nBy default, this
keyword chooses 'Ok' option from the dialog. If 'cancel' needs to be
chosen, keyword <a href=\"#Choose Cancel On Next Confirmation\"
class=\"name\">Choose Cancel On Next Confirmation</a> must be called before
the action that causes the confirmation dialog to be
shown.\n\nExamples:\n<table class=\"robotdoc\">\n<tr>\n<td>Click
Button</td>\n<td>Send</td>\n<td># Shows a confirmation
dialog</td>\n</tr>\n<tr>\n<td>${message}=</td>\n<td>Confirm
Action</td>\n<td># Chooses Ok</td>\n</tr>\n<tr>\n<td>Should Be
Equal</td>\n<td>${message}</td>\n<td>Are your
sure?</td>\n</tr>\n<tr>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Choose
Cancel On Next
Confirmation</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Click
Button</td>\n<td>Send</td>\n<td># Shows a confirmation
dialog</td>\n</tr>\n<tr>\n<td>Confirm Action</td>\n<td></td>\n<td># Chooses
Cancel</td>\n</tr>\n</table>","name":"Confirm Action","shortdoc":"Dismisses
currently shown confirmation dialog and returns it's
message."},{"args":"text, loglevel=INFO","doc":"Verifies that current page
contains <span class=\"name\">text</span>.\n\nIf this keyword fails, it
automatically logs the page source using the log level specified with the
optional <span class=\"name\">loglevel</span> argument. Giving <span
class=\"name\">NONE</span> as level disables logging.\n\nThe <span
class=\"name\">loglevel</span> argument was added in SeleniumLibrary 2.3.1
and the special <span class=\"name\">NONE</span> argument value in
SeleniumLibrary 2.5.","name":"Current Frame Contains","shortdoc":"Verifies
that current page contains `text`."},{"args":"text,
loglevel=INFO","doc":"Verifies that current page contains <span
class=\"name\">text</span>.\n\nIf this keyword fails, it automatically logs
the page source using the log level specified with the optional <span
class=\"name\">loglevel</span> argument. Giving <span
class=\"name\">NONE</span> as level disables logging.\n\nThe <span
class=\"name\">loglevel</span> argument was added in SeleniumLibrary 2.3.1
and the special <span class=\"name\">NONE</span> argument value in
SeleniumLibrary 2.5.","name":"Current Frame Should
Contain","shortdoc":"Verifies that current page contains
`text`."},{"args":"","doc":"Deletes all cookies by calling <a
href=\"#Delete Cookie\" class=\"name\">Delete Cookie</a>
repeatedly.","name":"Delete All Cookies","shortdoc":"Deletes all cookies by
calling `Delete Cookie` repeatedly."},{"args":"name,
options=","doc":"Deletes cookie matching <span class=\"name\">name</span>
and <span class=\"name\">options</span>.\n\nIf the cookie is not found,
nothing happens.\n\n<span class=\"name\">options</span> is the options for
the cookie as a string. Currently supported options include <span
class=\"name\">path</span>, <span class=\"name\">domain</span> and <span
class=\"name\">recurse.</span> Format for <span
class=\"name\">options</span> is <span class=\"name\">path=/path/,
domain=.
foo.com, recurse=true</span>. The order of options is irrelevant.
Note that specifying a domain that is not a subset of the current domain
will usually fail. Setting <span class=\"name\">recurse=true</span> will
cause this keyword to search all sub-domains of current domain with all
paths that are subset of current path. This can take a long
time.","name":"Delete Cookie","shortdoc":"Deletes cookie matching `name`
and `options`."},{"args":"locator, dont_wait=,
coordinates=None","doc":"Double click element identified by <span
class=\"name\">locator</span>.\n\nKey attributes for arbitrary elements are
<span class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements and about meaning of <span
class=\"name\">dont_wait</span> argument.\n\nIf you want to double click
the element at certain coordinates, you can specify the position with <span
class=\"name\">coordinates</span> argument in format <span
class=\"name\">x,y</span>.\n\nSee <a href=\"#Click Element\"
class=\"name\">Click Element</a> for usage examples.\n\nThis keyword is new
in SeleniumLibrary 2.7.","name":"Double Click Element","shortdoc":"Double
click element identified by `locator`."},{"args":"locator","doc":"Double
clicks an element found by <span class=\"name\">locator</span>.\n\nSee <a
href=\"#introduction\" class=\"name\">introduction</a> about rules for
locating Flex elements.","name":"Double Click Flex
Element","shortdoc":"Double clicks an element found by
`locator`."},{"args":"locator, movement=None, target=None","doc":"Drags
element identified with <span class=\"name\">locator</span>.\n\nElement can
be moved either by a certain amount of pixels with <span
class=\"name\">movement</span> argument, or on top of another element with
<span class=\"name\">target</span> argument.\n\n<span
class=\"name\">movement</span> is a string in format \"+70 -300\"
interpreted as pixels relative to the dragged element's original
position.\n\n<span class=\"name\">target</span> is a locator of the element
where the dragged object is dropped. This argument was added in
SeleniumLibrary 2.7.\n\nExamples:\n<table
class=\"robotdoc\">\n<tr>\n<td>Drag And Drop</td>\n<td>myElem</td>\n<td>+50
-35</td>\n<td># Move myElem 50px right and 35px
down.</td>\n</tr>\n<tr>\n<td>Drag And
Drop</td>\n<td>elem1</td>\n<td>target=elem2</td>\n<td># Move elem1 over
elem2.</td>\n</tr>\n</table>","name":"Drag And Drop","shortdoc":"Drags
element identified with `locator`."},{"args":"locator","doc":"Verifies that
element identified with <span class=\"name\">locator</span> is
disabled.\n\nKey attributes for arbitrary elements are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword was added in SeleniumLibrary
2.6.","name":"Element Should Be Disabled","shortdoc":"Verifies that element
identified with `locator` is disabled."},{"args":"locator","doc":"Verifies
that element identified with <span class=\"name\">locator</span> is
enabled.\n\nKey attributes for arbitrary elements are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword was added in SeleniumLibrary
2.6.","name":"Element Should Be Enabled","shortdoc":"Verifies that element
identified with `locator` is enabled."},{"args":"locator,
message=","doc":"Verifies that the element identified by <span
class=\"name\">locator</span> is visible.\n\nHerein, visible means that the
element is logically visible, not optically visible in the current browser
viewport. For example, an element that carries display:none is not
logically visible, so using this keyword on that element would
fail.\n\n<span class=\"name\">message</span> can be used to override the
default error message.\n\nKey attributes for arbitrary elements are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword was added in SeleniumLibrary
2.5.","name":"Element Should Be Visible","shortdoc":"Verifies that the
element identified by `locator` is visible."},{"args":"locator, expected,
message=","doc":"Verifies element identified by <span
class=\"name\">locator</span> contains text <span
class=\"name\">expected</span>.\n\nIf you wish to assert an exact (not a
substring) match on the text of the element, use <a href=\"#Element Text
Should Be\" class=\"name\">Element Text Should Be</a>.\n\n<span
class=\"name\">message</span> can be used to override the default error
message.\n\nKey attributes for arbitrary elements are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Element Should Contain","shortdoc":"Verifies
element identified by `locator` contains text
`expected`."},{"args":"locator, message=","doc":"Verifies that the element
identified by <span class=\"name\">locator</span> is NOT visible.\n\nThis
is the opposite of <a href=\"#Element Should Be Visible\"
class=\"name\">Element Should Be Visible</a>.\n\n<span
class=\"name\">message</span> can be used to override the default error
message.\n\nKey attributes for arbitrary elements are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword was added in SeleniumLibrary
2.5.","name":"Element Should Not Be Visible","shortdoc":"Verifies that the
element identified by `locator` is NOT visible."},{"args":"locator,
expected, message=","doc":"Verifies element identified by <span
class=\"name\">locator</span> exactly contains text <span
class=\"name\">expected</span>.\n\nIn contrast to <a href=\"#Element Should
Contain\" class=\"name\">Element Should Contain</a>, this keyword does not
try a substring match but an exact match on the element identified by <span
class=\"name\">locator</span>.\n\n<span class=\"name\">message</span> can
be used to override the default error message.\n\nKey attributes for
arbitrary elements are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.\n\nThis keyword was added in SeleniumLibrary
2.5.","name":"Element Text Should Be","shortdoc":"Verifies element
identified by `locator` exactly contains text
`expected`."},{"args":"*code","doc":"Executes the given JavaScript
code.\n\n<span class=\"name\">code</span> may contain multiple statements
and the return value of last statement is returned by this
keyword.\n\n<span class=\"name\">code</span> may be divided into multiple
cells in the test data. In that case, the parts are catenated together
without adding spaces.\n\nIf <span class=\"name\">code</span> is an
absolute path to an existing file, the JavaScript to execute will be read
from that file. Forward slashes work as a path separator on all operating
systems. The functionality to read the code from a file was added in
SeleniumLibrary 2.5.\n\nNote that, by default, the code will be executed in
the context of the Selenium object itself, so <span
class=\"name\">this</span> will refer to the Selenium object. Use <span
class=\"name\">window</span> to refer to the window of your application,
e.g. <span
class=\"name\">window.document.getElementById('foo')</span>.\n\nExamples:\n<table
class=\"robotdoc\">\n<tr>\n<td>Execute
JavaScript</td>\n<td>window.my_js_function('arg1', 'arg2')</td>\n</tr>\n<tr>\n<td>Execute
JavaScript</td>\n<td>${CURDIR}/js_to_execute.js</td>\n</tr>\n</table>","name":"Execute
Javascript","shortdoc":"Executes the given JavaScript
code."},{"args":"locator, property, expected","doc":"Verifies than an
element found by <span class=\"name\">locator</span> has correct
property.\n\n<span class=\"name\">property</span> is the name of the
property and <span class=\"name\">expected</span> is the expected
value.\n\nSee <a href=\"#introduction\" class=\"name\">introduction</a>
about rules for locating Flex elements.","name":"Flex Element Property
Should Be","shortdoc":"Verifies than an element found by `locator` has
correct property."},{"args":"locator","doc":"Verifies that an element can
be found by <span class=\"name\">locator</span>.\n\nSee <a
href=\"#introduction\" class=\"name\">introduction</a> about rules for
locating Flex elements.","name":"Flex Element Should
Exist","shortdoc":"Verifies that an element can be found by
`locator`."},{"args":"locator","doc":"Verifies that an element is not found
by <span class=\"name\">locator</span>.\n\nSee <a href=\"#introduction\"
class=\"name\">introduction</a> about rules for locating Flex
elements.","name":"Flex Element Should Not Exist","shortdoc":"Verifies that
an element is not found by `locator`."},{"args":"locator,
expected","doc":"Verifies that an element found by <span
class=\"name\">locator</span> has text <span
class=\"name\">expected</span>.\n\nSee <a href=\"#introduction\"
class=\"name\">introduction</a> about rules for locating Flex
elements.","name":"Flex Element Text Should Be","shortdoc":"Verifies that
an element found by `locator` has text
`expected`."},{"args":"locator","doc":"Sets focus to element identified by
<span class=\"name\">locator</span>.\n\nThis is useful for instance to
direct native keystrokes to particular element using <a href=\"#Press Key
Native\" class=\"name\">Press Key
Native</a>.","name":"Focus","shortdoc":"Sets focus to element identified by
`locator`."},{"args":"locator, text, loglevel=INFO","doc":"Verifies frame
identified by <span class=\"name\">locator</span> contains <span
class=\"name\">text</span>.\n\nSee <a href=\"#Page Should Contain\"
class=\"name\">Page Should Contain </a> for explanation about <span
class=\"name\">loglevel</span> argument, that was added in SeleniumLibrary
2.5.\n\nKey attributes for frames are <span class=\"name\">id</span> and
<span class=\"name\">name.</span> See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Frame Should Contain","shortdoc":"Verifies frame
identified by `locator` contains `text`."},{"args":"locator, text,
loglevel=INFO","doc":"Verifies frame identified by <span
class=\"name\">locator</span> contains <span
class=\"name\">text</span>.\n\nSee <a href=\"#Page Should Contain\"
class=\"name\">Page Should Contain </a> for explanation about <span
class=\"name\">loglevel</span> argument, that was added in SeleniumLibrary
2.5.\n\nKey attributes for frames are <span class=\"name\">id</span> and
<span class=\"name\">name.</span> See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Frame Should Contain Text","shortdoc":"Verifies frame
identified by `locator` contains `text`."},{"args":"","doc":"Returns the
text of current JavaScript alert.\n\nThis keyword will fail if no alert is
present. Note that when running tests with selenium, the alerts will not be
visible in the browser. Nevertheless, following keywords will fail unless
the alert is dismissed by this keyword or by <a href=\"#Alert Should Be
Present\" class=\"name\">Alert Should Be Present</a>.","name":"Get Alert
Message","shortdoc":"Returns the text of current JavaScript
alert."},{"args":"","doc":"Returns a list containing ids of all links found
in current page.\n\nIf a link has no id, an empty string will be in the
list instead.","name":"Get All Links","shortdoc":"Returns a list containing
ids of all links found in current page."},{"args":"name","doc":"Returns
value of cookie found with <span class=\"name\">name</span>.\n\nIf no
cookie is found with <span class=\"name\">name</span>, this keyword
fails.","name":"Get Cookie Value","shortdoc":"Returns value of cookie found
with `name`."},{"args":"","doc":"Returns all cookies of the current
page.","name":"Get Cookies","shortdoc":"Returns all cookies of the current
page."},{"args":"attribute_locator","doc":"Return value of element
attribute.\n\n<span class=\"name\">attribute_locator</span> consists of
element locator followed by an @ sign and attribute name, for example
\"element_id@class\".","name":"Get Element Attribute","shortdoc":"Return
value of element attribute."},{"args":"locator","doc":"Returns horizontal
position of element identified by <span
class=\"name\">locator</span>.\n\nThe position is returned in pixels off
the left side of the page, as an integer. Fails if a matching element is
not found.\n\nSee also <a href=\"#Get Vertical Position\"
class=\"name\">Get Vertical Position</a>.","name":"Get Horizontal
Position","shortdoc":"Returns horizontal position of element identified by
`locator`."},{"args":"locator","doc":"Returns inner HTML of element
identified by <span class=\"name\">locator</span>.\n\nSee <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nNew in SeleniumLibrary 2.9.","name":"Get Inner
Html","shortdoc":"Returns inner HTML of element identified by
`locator`."},{"args":"locator","doc":"Returns the values in the list
identified by <span class=\"name\">locator</span>.\n\nList keywords work on
both lists and combo boxes. Key attributes for lists are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Get List Items","shortdoc":"Returns the values
in the list identified by `locator`."},{"args":"","doc":"Returns the
current location.","name":"Get Location","shortdoc":"Returns the current
location."},{"args":"xpath","doc":"Returns number of elements matching
<span class=\"name\">xpath</span>\n\nIf you wish to assert the number of
matching elements, use <a href=\"#Xpath Should Match X Times\"
class=\"name\">Xpath Should Match X Times</a>.","name":"Get Matching Xpath
Count","shortdoc":"Returns number of elements matching
`xpath`"},{"args":"locator","doc":"Returns the visible label of the
selected element from the list identified by <span
class=\"name\">locator</span>.\n\nFails if there are zero or more than one
selection.\n\nList keywords work on both lists and combo boxes. Key
attributes for lists are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.\n\nThis keyword was added in SeleniumLibrary 2.8.","name":"Get
Selected List Label","shortdoc":"Returns the visible label of the selected
element from the list identified by
`locator`."},{"args":"locator","doc":"Returns the visible labels of
selected elements (as a list) from the list identified by <span
class=\"name\">locator</span>.\n\nFails if there is no selection.\n\nList
keywords work on both lists and combo boxes. Key attributes for lists are
<span class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword was added in SeleniumLibrary
2.8.","name":"Get Selected List Labels","shortdoc":"Returns the visible
labels of selected elements (as a list) from the list identified by
`locator`."},{"args":"locator","doc":"Returns the value of the selected
element from the list identified by <span
class=\"name\">locator</span>.\n\nReturn value is read from <span
class=\"name\">value</span> attribute of the selected element. Fails if
there are zero or more than one selection.\n\nList keywords work on both
lists and combo boxes. Key attributes for lists are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword was added in SeleniumLibrary
2.8.","name":"Get Selected List Value","shortdoc":"Returns the value of the
selected element from the list identified by
`locator`."},{"args":"locator","doc":"Returns the values of selected
elements (as a list) from the list identified by <span
class=\"name\">locator</span>.\n\nFails if there is no selection.\n\nList
keywords work on both lists and combo boxes. Key attributes for lists are
<span class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword was added in SeleniumLibrary
2.8.","name":"Get Selected List Values","shortdoc":"Returns the values of
selected elements (as a list) from the list identified by
`locator`."},{"args":"","doc":"Returns the entire html source of the
current page or frame.","name":"Get Source","shortdoc":"Returns the entire
html source of the current page or frame."},{"args":"table_locator, row,
column","doc":"Returns the content from a table cell.\n\nRow and Column
number start from 1. Header and footer rows are included in the count. This
means that also cell content from header or footer rows can be obtained
with this keyword. To understand how tables are identified, please take a
look at the <a href=\"#introduction\"
class=\"name\">introduction</a>.","name":"Get Table
Cell","shortdoc":"Returns the content from a table
cell."},{"args":"locator","doc":"Returns the text of element identified by
<span class=\"name\">locator</span>.\n\nSee <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Get Text","shortdoc":"Returns the text of element
identified by `locator`."},{"args":"","doc":"Returns title of current
page.","name":"Get Title","shortdoc":"Returns title of current
page."},{"args":"locator","doc":"Returns the value attribute of element
identified by <span class=\"name\">locator</span>.\n\nSee <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Get Value","shortdoc":"Returns the value
attribute of element identified by
`locator`."},{"args":"locator","doc":"Returns vertical position of element
identified by <span class=\"name\">locator</span>.\n\nThe position is
returned in pixels off the top of the page, as an integer. Fails if a
matching element is not found.\n\nSee also <a href=\"#Get Horizontal
Position\" class=\"name\">Get Horizontal Position</a>.","name":"Get
Vertical Position","shortdoc":"Returns vertical position of element
identified by `locator`."},{"args":"","doc":"Returns and logs id attributes
of all windows known to the browser.","name":"Get Window
Identifiers","shortdoc":"Returns and logs id attributes of all windows
known to the browser."},{"args":"","doc":"Returns and logs names of all
windows known to the browser.","name":"Get Window
Names","shortdoc":"Returns and logs names of all windows known to the
browser."},{"args":"","doc":"Returns and logs titles of all windows known
to the browser.","name":"Get Window Titles","shortdoc":"Returns and logs
titles of all windows known to the
browser."},{"args":"dont_wait=","doc":"Simulates the user clicking the
\"back\" button on their browser.\n\nSee <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating elements and
about meaning of <span class=\"name\">dont_wait</span>
argument.","name":"Go Back","shortdoc":"Simulates the user clicking the
\"back\" button on their browser."},{"args":"url","doc":"Navigates the
active browser instance to the provided URL.","name":"Go
To","shortdoc":"Navigates the active browser instance to the provided
URL."},{"args":"locator","doc":"Highlights element found with <span
class=\"name\">locator</span> briefly.\n\nThis is mainly useful for
debugging purposes.\n\nThis keyword was added in SeleniumLibrary
2.8.1","name":"Highlight Element","shortdoc":"Highlights element found with
`locator` briefly."},{"args":"locator, text","doc":"Types the given
password into text field identified by <span
class=\"name\">locator</span>.\n\nDifference between this keyword and <a
href=\"#Input Text\" class=\"name\">Input Text</a> is that this keyword
does not log the given password. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Input Password","shortdoc":"Types the given password
into text field identified by `locator`."},{"args":"locator,
text","doc":"Types the given <span class=\"name\">text</span> into text
field identified by <span class=\"name\">locator</span>.\n\nSee <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Input Text","shortdoc":"Types the given `text`
into text field identified by `locator`."},{"args":"locator,
text","doc":"Inputs <span class=\"name\">text</span> into an element found
by <span class=\"name\">locator</span>.\n\nSee <a href=\"#introduction\"
class=\"name\">introduction</a> about rules for locating Flex
elements.","name":"Input Text Into Flex Element","shortdoc":"Inputs `text`
into an element found by `locator`."},{"args":"locator,
*values","doc":"Verifies the selection of list identified by <span
class=\"name\">locator</span> is exactly <span
class=\"name\">*values</span>.\n\nIf you want to test that no option is
selected, simply give no <span class=\"name\">values</span>.\n\nList
keywords work on both lists and combo boxes. Key attributes for lists are
<span class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"List Selection Should Be","shortdoc":"Verifies
the selection of list identified by `locator` is exactly
`*values`."},{"args":"locator","doc":"Verifies list identified by <span
class=\"name\">locator</span> has no selections.\n\nList keywords work on
both lists and combo boxes. Key attributes for lists are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"List Should Have No
Selections","shortdoc":"Verifies list identified by `locator` has no
selections."},{"args":"url","doc":"Verifies that current URL is exactly
<span class=\"name\">url</span>.","name":"Location Should
Be","shortdoc":"Verifies that current URL is exactly
`url`."},{"args":"expected","doc":"Verifies that current URL contains <span
class=\"name\">expected</span>.","name":"Location Should
Contain","shortdoc":"Verifies that current URL contains
`expected`."},{"args":"level=INFO","doc":"Logs and returns the entire html
source of the current page or frame.\n\nThe <span
class=\"name\">level</span> argument defines the used log level. Valid log
levels are <span class=\"name\">WARN</span>, <span
class=\"name\">INFO</span> (default), <span class=\"name\">DEBUG</span>,
<span class=\"name\">TRACE</span> and <span class=\"name\">NONE</span> (no
logging).\n\n<span class=\"name\">NONE</span> argument value was added in
SeleniumLibrary 2.5.","name":"Log Source","shortdoc":"Logs and returns the
entire html source of the current page or
frame."},{"args":"","doc":"Maximizes current browser
window.","name":"Maximize Browser Window","shortdoc":"Maximizes current
browser window."},{"args":"locator","doc":"Simulates pressing the left
mouse button on the element specified by <span
class=\"name\">locator</span>.\n\nThe element is pressed without releasing
the mouse button.\n\nKey attributes for arbitrary elements are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nSee also the more specific keywords <a href=\"#Mouse
Down On Image\" class=\"name\">Mouse Down On Image</a> and <a href=\"#Mouse
Down On Link\" class=\"name\">Mouse Down On Link</a>.\n\nThis keyword was
added in SeleniumLibrary 2.5.","name":"Mouse Down","shortdoc":"Simulates
pressing the left mouse button on the element specified by
`locator`."},{"args":"locator","doc":"Simulates a mouse down event on an
image.\n\nKey attributes for images are <span class=\"name\">id</span>,
<span class=\"name\">src</span> and <span class=\"name\">alt</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Mouse Down On Image","shortdoc":"Simulates a
mouse down event on an image."},{"args":"locator","doc":"Simulates a mouse
down event on a link.\n\nKey attributes for links are <span
class=\"name\">id</span>, <span class=\"name\">name</span>, <span
class=\"name\">href</span> and link text. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Mouse Down On Link","shortdoc":"Simulates a mouse down
event on a link."},{"args":"locator","doc":"Simulates moving mouse away
from the element specified by <span class=\"name\">locator</span>.\n\nKey
attributes for arbitrary elements are <span class=\"name\">id</span> and
<span class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.\n\nThis keyword was added in SeleniumLibrary 2.5.","name":"Mouse
Out","shortdoc":"Simulates moving mouse away from the element specified by
`locator`."},{"args":"locator","doc":"Simulates hovering mouse over the
element specified by <span class=\"name\">locator</span>.\n\nKey attributes
for arbitrary elements are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.\n\nThis keyword was added in SeleniumLibrary 2.5.","name":"Mouse
Over","shortdoc":"Simulates hovering mouse over the element specified by
`locator`."},{"args":"locator","doc":"Simulates releasing the left mouse
button on the element specified by <span
class=\"name\">locator</span>.\n\nKey attributes for arbitrary elements are
<span class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword was added in SeleniumLibrary
2.5.","name":"Mouse Up","shortdoc":"Simulates releasing the left mouse
button on the element specified by `locator`."},{"args":"url,
browser=firefox, alias=None","doc":"Opens a new browser instance to given
URL.\n\nPossible already opened connections are cached.\n\nReturns the
index of this browser instance which can be used later to switch back to
it. Index starts from 1 and is reset back to it when <a href=\"#Close All
Browsers\" class=\"name\">Close All Browsers</a> keyword is used. See <a
href=\"#Switch Browser\" class=\"name\">Switch Browser</a> for
example.\n\nOptional alias is a alias for the browser instance and it can
be used for switching between browsers similarly as the index. See <a
href=\"#Switch Browser\" class=\"name\">Switch Browser</a> for more details
about that.\n\nPossible values for <span class=\"name\">browser</span> are
all the values supported by Selenium and some aliases that are defined for
convenience. The table below lists the aliases for most common supported
browsers.\n\n<table
class=\"robotdoc\">\n<tr>\n<td>firefox</td>\n<td>FireFox</td>\n</tr>\n<tr>\n<td>ff</td>\n<td>FireFox</td>\n</tr>\n<tr>\n<td>ie</td>\n<td>Internet
Explorer</td>\n</tr>\n<tr>\n<td>internetexplorer</td>\n<td>Internet
Explorer</td>\n</tr>\n<tr>\n<td>safari</td>\n<td>Safari</td>\n</tr>\n<tr>\n<td>googlechrome</td>\n<td>Google
Chrome</td>\n</tr>\n<tr>\n<td>opera</td>\n<td>Opera</td>\n</tr>\n</table>\nAdditionally,
a string like <span class=\"name\">*custom
/path/to/browser-executable</span> can be used to specify the browser
directly. In this case, the path needs to point to an executable, not a
script, otherwise the library may not be able to shut down the browser
properly.\n\nNote, that you will encounter strange behavior, if you open
multiple Internet Explorer browser instances. That is also why <a
href=\"#Switch Browser\" class=\"name\">Switch Browser</a> only works with
one IE browser at most. For more information see: <a
href=\"
http://selenium-grid.seleniumhq.org/faq.html#i_get_some_strange_errors_when_i_run_multiple_internet_explorer_instances_on_the_same_machine\">
http://selenium-grid.seleniumhq.org/faq.html#i_get_some_strange_errors_when_i_run_multiple_internet_explorer_instances_on_the_same_machine</a>","name":"Open
Browser","shortdoc":"Opens a new browser instance to given
URL."},{"args":"locator, offset=None","doc":"Opens context menu on element
identified by <span class=\"name\">locator</span>.","name":"Open Context
Menu","shortdoc":"Opens context menu on element identified by
`locator`."},{"args":"text, loglevel=INFO","doc":"Verifies that current
page contains <span class=\"name\">text</span>.\n\nIf this keyword fails,
it automatically logs the page source using the log level specified with
the optional <span class=\"name\">loglevel</span> argument. Giving <span
class=\"name\">NONE</span> as level disables logging.\n\nThe <span
class=\"name\">loglevel</span> argument was added in SeleniumLibrary 2.3.1
and the special <span class=\"name\">NONE</span> argument value in
SeleniumLibrary 2.5.","name":"Page Should Contain","shortdoc":"Verifies
that current page contains `text`."},{"args":"locator, message=,
loglevel=INFO","doc":"Verifies button identified by <span
class=\"name\">locator</span> is found from current page.\n\nThis keyword
searches for buttons created with either <span class=\"name\">input</span>
or <span class=\"name\">button</span> tag.\n\nSee <a href=\"#Page Should
Contain Element\" class=\"name\">Page Should Contain Element</a> for
explanation about <span class=\"name\">message</span> and <span
class=\"name\">loglevel</span> arguments.\n\nKey attributes for buttons are
<span class=\"name\">id</span>, <span class=\"name\">name</span> and <span
class=\"name\">value</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Page Should Contain Button","shortdoc":"Verifies button
identified by `locator` is found from current page."},{"args":"locator,
message=, loglevel=INFO","doc":"Verifies checkbox identified by <span
class=\"name\">locator</span> is found from current page.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">message</span> and
<span class=\"name\">loglevel</span> arguments.\n\nKey attributes for
checkboxes are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Page Should Contain Checkbox","shortdoc":"Verifies
checkbox identified by `locator` is found from current
page."},{"args":"locator, message=, loglevel=INFO","doc":"Verifies element
identified by <span class=\"name\">locator</span> is found from current
page.\n\n<span class=\"name\">message</span> can be used to override
default error message.\n\nIf this keyword fails, it automatically logs the
page source using the log level specified with the optional <span
class=\"name\">loglevel</span> argument. Giving <span
class=\"name\">NONE</span> as level disables logging.\n\nThe <span
class=\"name\">loglevel</span> argument was added in SeleniumLibrary
2.5.\n\nKey attributes for arbitrary elements are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Page Should Contain
Element","shortdoc":"Verifies element identified by `locator` is found from
current page."},{"args":"locator, message=, loglevel=INFO","doc":"Verifies
image identified by <span class=\"name\">locator</span> is found from
current page.\n\nSee <a href=\"#Page Should Contain Element\"
class=\"name\">Page Should Contain Element</a> for explanation about <span
class=\"name\">message</span> and <span class=\"name\">loglevel</span>
arguments.\n\nKey attributes for images are <span class=\"name\">id</span>,
<span class=\"name\">src</span> and <span class=\"name\">alt</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Page Should Contain Image","shortdoc":"Verifies
image identified by `locator` is found from current
page."},{"args":"locator, message=, loglevel=INFO","doc":"Verifies link
identified by <span class=\"name\">locator</span> is found from current
page.\n\nSee <a href=\"#Page Should Contain Element\" class=\"name\">Page
Should Contain Element</a> for explanation about <span
class=\"name\">message</span> and <span class=\"name\">loglevel</span>
arguments.\n\nKey attributes for links are <span class=\"name\">id</span>,
<span class=\"name\">name</span>, <span class=\"name\">href</span> and link
text. See <a href=\"#introduction\" class=\"name\">introduction</a> for
details about locating elements.","name":"Page Should Contain
Link","shortdoc":"Verifies link identified by `locator` is found from
current page."},{"args":"locator, message=, loglevel=INFO","doc":"Verifies
list identified by <span class=\"name\">locator</span> is found from
current page.\n\nSee <a href=\"#Page Should Contain Element\"
class=\"name\">Page Should Contain Element</a> for explanation about <span
class=\"name\">message</span> and <span class=\"name\">loglevel</span>
arguments.\n\nKey attributes for lists are <span class=\"name\">id</span>
and <span class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Page Should Contain List","shortdoc":"Verifies list
identified by `locator` is found from current page."},{"args":"locator,
message=, loglevel=INFO","doc":"Verifies radio button identified by <span
class=\"name\">locator</span> is found from current page.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">message</span> and
<span class=\"name\">loglevel</span> arguments.\n\nKey attributes for radio
buttons are <span class=\"name\">id</span>, <span
class=\"name\">name</span> and <span class=\"name\">value</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Page Should Contain Radio
Button","shortdoc":"Verifies radio button identified by `locator` is found
from current page."},{"args":"locator, message=,
loglevel=INFO","doc":"Verifies text field identified by <span
class=\"name\">locator</span> is found from current page.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">message</span> and
<span class=\"name\">loglevel</span> arguments.\n\nKey attributes for text
fields are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Page Should Contain Textfield","shortdoc":"Verifies text
field identified by `locator` is found from current page."},{"args":"text,
loglevel=INFO","doc":"Verifies the current page does not contain <span
class=\"name\">text</span>.\n\nIf this keyword fails, it automatically logs
the page source using the log level specified with the optional <span
class=\"name\">loglevel</span> argument. Giving <span
class=\"name\">NONE</span> as level disables logging.\n\nThe <span
class=\"name\">loglevel</span>argument was added in SeleniumLibrary
2.5.","name":"Page Should Not Contain","shortdoc":"Verifies the current
page does not contain `text`."},{"args":"locator, message=,
loglevel=INFO","doc":"Verifies button identified by <span
class=\"name\">locator</span> is not found from current page.\n\nThis
keyword searches for buttons created with either <span
class=\"name\">input</span> or <span class=\"name\">button</span>
tag.\n\nSee <a href=\"#Page Should Contain Element\" class=\"name\">Page
Should Contain Element</a> for explanation about <span
class=\"name\">message</span> and <span class=\"name\">loglevel</span>
arguments.\n\nKey attributes for buttons are <span
class=\"name\">id</span>, <span class=\"name\">name</span> and <span
class=\"name\">value</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Page Should Not Contain Button","shortdoc":"Verifies
button identified by `locator` is not found from current
page."},{"args":"locator, message=, loglevel=INFO","doc":"Verifies checkbox
identified by <span class=\"name\">locator</span> is not found from current
page.\n\nSee <a href=\"#Page Should Contain Element\" class=\"name\">Page
Should Contain Element</a> for explanation about <span
class=\"name\">message</span> and <span class=\"name\">loglevel</span>
arguments.\n\nKey attributes for checkboxes are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Page Should Not Contain
Checkbox","shortdoc":"Verifies checkbox identified by `locator` is not
found from current page."},{"args":"locator, message=,
loglevel=INFO","doc":"Verifies element identified by <span
class=\"name\">locator</span> is not found from current page.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">message</span> and
<span class=\"name\">loglevel</span> arguments.\n\nKey attributes for
arbitrary elements are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Page Should Not Contain Element","shortdoc":"Verifies
element identified by `locator` is not found from current
page."},{"args":"locator, message=, loglevel=INFO","doc":"Verifies image
identified by <span class=\"name\">locator</span> is not found from current
page.\n\nSee <a href=\"#Page Should Contain Element\" class=\"name\">Page
Should Contain Element</a> for explanation about <span
class=\"name\">message</span> and <span class=\"name\">loglevel</span>
arguments.\n\nKey attributes for images are <span class=\"name\">id</span>,
<span class=\"name\">src</span> and <span class=\"name\">alt</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Page Should Not Contain
Image","shortdoc":"Verifies image identified by `locator` is not found from
current page."},{"args":"locator, message=, loglevel=INFO","doc":"Verifies
link identified by <span class=\"name\">locator</span> is not found from
current page.\n\nSee <a href=\"#Page Should Contain Element\"
class=\"name\">Page Should Contain Element</a> for explanation about <span
class=\"name\">message</span> and <span class=\"name\">loglevel</span>
arguments.\n\nKey attributes for links are <span class=\"name\">id</span>,
<span class=\"name\">name</span>, <span class=\"name\">href</span> and link
text. See <a href=\"#introduction\" class=\"name\">introduction</a> for
details about locating elements.","name":"Page Should Not Contain
Link","shortdoc":"Verifies link identified by `locator` is not found from
current page."},{"args":"locator, message=, loglevel=INFO","doc":"Verifies
list identified by <span class=\"name\">locator</span> is not found from
current page.\n\nSee <a href=\"#Page Should Contain Element\"
class=\"name\">Page Should Contain Element</a> for explanation about <span
class=\"name\">message</span> and <span class=\"name\">loglevel</span>
arguments.\n\nKey attributes for lists are <span class=\"name\">id</span>
and <span class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Page Should Not Contain List","shortdoc":"Verifies list
identified by `locator` is not found from current page."},{"args":"locator,
message=, loglevel=INFO","doc":"Verifies radio button identified by <span
class=\"name\">locator</span> is not found from current page.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">message</span> and
<span class=\"name\">loglevel</span> arguments.\n\nKey attributes for radio
buttons are <span class=\"name\">id</span>, <span
class=\"name\">name</span> and <span class=\"name\">value</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Page Should Not Contain Radio
Button","shortdoc":"Verifies radio button identified by `locator` is not
found from current page."},{"args":"locator, message=,
loglevel=INFO","doc":"Verifies text field identified by <span
class=\"name\">locator</span> is not found from current page.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">message</span> and
<span class=\"name\">loglevel</span> arguments.\n\nKey attributes for text
fields are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Page Should Not Contain Textfield","shortdoc":"Verifies
text field identified by `locator` is not found from current
page."},{"args":"locator, key, wait=","doc":"Simulates user pressing key on
element identified by <span class=\"name\">locator</span>.\n\n<span
class=\"name\">key</span> is either a single character, or a numerical
ASCII code of the key lead by '\\'.\n\nSee <a href=\"#introduction\"
class=\"name\">introduction</a> for details about <span
class=\"name\">wait</span> argument.\n\nExamples:\n<table
class=\"robotdoc\">\n<tr>\n<td>Press
Key</td>\n<td>text_field</td>\n<td>q</td>\n<td></td>\n</tr>\n<tr>\n<td>Press
Key</td>\n<td>login_button</td>\n<td>\\13</td>\n<td># ASCII code for enter
key</td>\n</tr>\n</table>\nSometimes this keyword does not trigger the
correct JavaScript event on the clicked element. In those cases <a
href=\"#Press Key Native\" class=\"name\">Press Key Native</a> can be used
as a workaround.\n\nThe selenium command <span
class=\"name\">key_press</span> [1] that this keyword used exposes some
erratic behavior [2], especially when used with the Internet Explorer. If
you do not get the expected results, try <a href=\"#Press Key Native\"
class=\"name\">Press Key Native</a> instead.\n\n[1] <a
href=\"
http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/python/selenium.selenium-class.html#key_press\">
http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/python/selenium.selenium-class.html#key_press</a>\n[2]
<a
href=\"
http://jira.openqa.org/browse/SRC-385\">
http://jira.openqa.org/browse/SRC-385</a>","name":"Press
Key","shortdoc":"Simulates user pressing key on element identified by
`locator`."},{"args":"keycode, wait=","doc":"Simulates user pressing key by
sending an operating system keystroke.\n\n<span
class=\"name\">keycode</span> corresponds to <span
class=\"name\">java.awt.event.KeyEvent</span> constants, which can be found
from <a
href=\"
http://java.sun.com/javase/6/docs/api/constant-values.html#java.awt.event.KeyEvent.CHAR_UNDEFINED\">
http://java.sun.com/javase/6/docs/api/constant-values.html#java.awt.event.KeyEvent.CHAR_UNDEFINED</a>\n\nThe
key press does not target a particular element. An element can be chosen by
first using <a href=\"#Focus\" class=\"name\">Focus</a> keyword.\n\nSee <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
<span class=\"name\">wait</span> argument.\n\nExamples:\n<table
class=\"robotdoc\">\n<tr>\n<td>Press Key Native</td>\n<td>517</td>\n<td>#
Exclamation
mark</td>\n</tr>\n<tr>\n<td>Focus</td>\n<td>login_button</td>\n<td></td>\n</tr>\n<tr>\n<td>Press
Key Native</td>\n<td>10</td>\n<td># Enter key</td>\n</tr>\n</table>\nNotice
that this keyword is very fragile and, for example, using the keyboard or
mouse while tests are running often causes problems. It can be beneficial
to bring the window to the front again with executing JavaScript:\n\n<table
class=\"robotdoc\">\n<tr>\n<td>Execute
Javascript</td>\n<td>window.focus()</td>\n<td></td>\n</tr>\n<tr>\n<td>Focus</td>\n<td>login_button</td>\n<td></td>\n</tr>\n<tr>\n<td>Press
Key Native</td>\n<td>10</td>\n<td>and
wait</td>\n</tr>\n</table>","name":"Press Key Native","shortdoc":"Simulates
user pressing key by sending an operating system
keystroke."},{"args":"group_name, value","doc":"Verifies radio button group
identified by <span class=\"name\">group_name</span> has its selection set
to <span class=\"name\">value</span>.\n\nSee <a href=\"#Select Radio
Button\" class=\"name\">Select Radio Button</a> for information about how
radio buttons are located.","name":"Radio Button Should Be Set
To","shortdoc":"Verifies radio button group identified by `group_name` has
its selection set to `value`."},{"args":"group_name","doc":"Verifies radio
button group identified by <span class=\"name\">group_name</span> has no
selection.\n\nSee <a href=\"#Select Radio Button\" class=\"name\">Select
Radio Button</a> for information about how radio buttons are
located.","name":"Radio Button Should Not Be Selected","shortdoc":"Verifies
radio button group identified by `group_name` has no
selection."},{"args":"keyword_name","doc":"Sets the keyword to execute when
a SeleniumLibrary keyword fails.\n\n<span
class=\"name\">keyword_name</span> is the name of a SeleniumLibrary keyword
that will be executed if another SeleniumLibrary keyword fails. It is not
possible to use a keyword that requires arguments. The name is case but not
space sensitive. If the name does not match any keyword, this functionality
is disabled and nothing extra will be done in case of a failure.\n\nThe
initial keyword to use is set in <a href=\"#importing\"
class=\"name\">importing</a>, and the keyword that is used by default is <a
href=\"#Capture Screenshot\" class=\"name\">Capture Screenshot</a>. Taking
a screenshot when something failed is a very useful feature, but notice
that it can slow down the execution.\n\nThis keyword returns the name of
the previously registered failure keyword. It can be used to restore the
original value later.\n\nExamples:\n<table
class=\"robotdoc\">\n<tr>\n<td>Register Keyword To Run On
Failure</td>\n<td>Log Source</td>\n<td># Run <a href=\"#Log Source\"
class=\"name\">Log Source</a> on
failure.</td>\n<td></td>\n</tr>\n<tr>\n<td>${previous
kw}=</td>\n<td>Register Keyword To Run On
Failure</td>\n<td>Nothing</td>\n<td># Disables run-on-failure functionality
and stores the previous kw name in a
variable.</td>\n</tr>\n<tr>\n<td>Register Keyword To Run On
Failure</td>\n<td>${previous kw}</td>\n<td># Restore to the previous
keyword.</td>\n<td></td>\n</tr>\n</table>\nThe whole run-on-failure
functionality is new in SeleniumLibrary 2.5. It only works when running
tests on Python/Jython 2.4 or newer and it does not work on IronPython at
all.","name":"Register Keyword To Run On Failure","shortdoc":"Sets the
keyword to execute when a SeleniumLibrary keyword
fails."},{"args":"","doc":"Simulates user reloading page.\n\nNew in
SeleniumLibrary 2.7.","name":"Reload Page","shortdoc":"Simulates user
reloading page."},{"args":"locator, wait=","doc":"Selects all values from
multi-select list identified by <span class=\"name\">id</span>.\n\nKey
attributes for lists are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating elements and
about <span class=\"name\">wait</span> argument.","name":"Select All From
List","shortdoc":"Selects all values from multi-select list identified by
`id`."},{"args":"locator","doc":"Selects checkbox identified by <span
class=\"name\">locator</span>.\n\nDoes nothing if checkbox is already
selected. Key attributes for checkboxes are <span class=\"name\">id</span>
and <span class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Select Checkbox","shortdoc":"Selects checkbox identified
by `locator`."},{"args":"locator","doc":"Selects Flex application to work
with and waits until it is active.\n\nAll further Flex keywords will
operate on the selected application and thus you <b>must always</b> use
this keyword before them. You must also use this keyword when you want to
operate another Flex application.\n\nBecause this keyword waits until the
selected application is active, it is recommended to use this if the page
where the application is located is reloaded. The timeout used is the same
Selenium timeout that can be set in <a href=\"#importing\"
class=\"name\">importing</a> and with <a href=\"#Set Selenium Timeout\"
class=\"name\">Set Selenium Timeout</a> keyword.\n\nThe application is
found using <span class=\"name\">locator</span> that must be either <span
class=\"name\">id</span> or <span class=\"name\">name</span> of the
application in HTML. Notice that if you have different elements for
different browsers (<object> vs. <embed>), you need to use
different attributes depending on the browser.\n\nThe old locator is
returned and can be used to switch back to the previous
application.\n\nExample:\n<table class=\"robotdoc\">\n<tr>\n<td>Select Flex
Application</td>\n<td>exampleFlexApp</td>\n<td></td>\n</tr>\n<tr>\n<td>Click
Flex Element</td>\n<td>myButton</td>\n<td></td>\n</tr>\n<tr>\n<td>${prev
app}</td>\n<td>= Select Flex
Application</td>\n<td>secondFlexApp</td>\n</tr>\n<tr>\n<td>Flex Element
Text Should Be</td>\n<td>Hello,
Flex!</td>\n<td></td>\n</tr>\n<tr>\n<td>Select Flex
Application</td>\n<td>${prev
app}</td>\n<td></td>\n</tr>\n</table>","name":"Select Flex
Application","shortdoc":"Selects Flex application to work with and waits
until it is active."},{"args":"locator","doc":"Sets frame identified by
<span class=\"name\">locator</span> as current frame.\n\nKey attributes for
frames are <span class=\"name\">id</span> and <span
class=\"name\">name.</span> See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Select Frame","shortdoc":"Sets frame identified by
`locator` as current frame."},{"args":"locator, value","doc":"Selects <span
class=\"name\">value</span> from an element found by <span
class=\"name\">locator</span>.\n\n<span class=\"name\">locator</span> is
used for finding the correct Flex element as explained in <a
href=\"#introduction\" class=\"name\">introduction</a>.\n\n<span
class=\"name\">value</span> specifies the value to select. By default the
value is selected by <span class=\"name\">label</span> attribute (i.e.
visible text). Other supported value locators are <span
class=\"name\">index</span>, <span class=\"name\">text</span>, <span
class=\"name\">data</span> and <span class=\"name\">value</span>. To use
them, you need to prefix the value with the locator type like <span
class=\"name\">index=1</span>.\n\nExamples:\n<table
class=\"robotdoc\">\n<tr>\n<td>Select From Flex
Element</td>\n<td>Text</td>\n<td># Select by visible
text</td>\n</tr>\n<tr>\n<td>Select From Flex
Element</td>\n<td>index=1</td>\n<td># Select by
index</td>\n</tr>\n<tr>\n<td>Select From Flex
Element</td>\n<td>data=someData</td>\n<td># Select by associated
data</td>\n</tr>\n</table>\n<b>NOTE:</b> This keyword only generates <span
class=\"name\">mx.events.ListEvent.CHANGE</span> event. Event handlers
associated with open or close events are thus not executed.","name":"Select
From Flex Element","shortdoc":"Selects `value` from an element found by
`locator`."},{"args":"locator, *values","doc":"Selects <span
class=\"name\">*values</span> from list identified by <span
class=\"name\">locator</span>\n\nIf more than one value is given for a
single-selection list, the last value will be selected. If the target list
is a multi-selection list, and <span class=\"name\">*values</span> is an
empty list, all values of the list will be selected.\n\nList keywords work
on both lists and combo boxes. Key attributes for lists are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword does not support waiting for possible
page load automatically. If that is needed, keyword <a href=\"#Wait Until
Page Loaded\" class=\"name\">Wait Until Page Loaded</a> can be used after
this keyword.","name":"Select From List","shortdoc":"Selects `*values` from
list identified by `locator`"},{"args":"group_name, value,
wait=","doc":"Sets selection of radio button group identified by <span
class=\"name\">group_name</span> to <span
class=\"name\">value</span>.\n\nThe radio button to be selected is located
by two arguments:\n- <span class=\"name\">group_name</span> is used as the
name of the radio input\n- <span class=\"name\">value</span> is used for
the value attribute or for the id attribute\n\nThe XPath used to locate the
correct radio button then looks like this: //input[@type='radio' and
@name='group_name' and (@value='value' or
@id='value')]\n\nExamples:\n<table class=\"robotdoc\">\n<tr>\n<td>Select
Radio Button</td>\n<td>size</td>\n<td>XL</td>\n<td># Matches HTML like
<input type=\"radio\" name=\"size\"
value=\"XL\">XL</input></td>\n</tr>\n<tr>\n<td>Select Radio
Button</td>\n<td>size</td>\n<td>sizeXL</td>\n<td># Matches HTML like
<input type=\"radio\" name=\"size\" value=\"XL\"
id=\"sizeXL\">XL</input></td>\n</tr>\n</table>\nSee <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
<span class=\"name\">wait</span> argument.","name":"Select Radio
Button","shortdoc":"Sets selection of radio button group identified by
`group_name` to `value`."},{"args":"locator=main","doc":"Selects the window
found with <span class=\"name\">locator</span> as the context of
actions.\n\nIf the window is found, all subsequent commands use that
window, until this keyword is used again. If the window is not found, this
keyword fails.\n\n<span class=\"name\">locator</span> may be either the
title of the window or the name of the window in the JavaScript code that
creates it. If multiple windows with same identifier are found, the first
one is selected.\n\nSpecial locator <span class=\"name\">main</span>
(default) can be used to select the main window.\n\nExample:\n<table
class=\"robotdoc\">\n<tr>\n<td>Click
Link</td>\n<td>popup_link</td>\n<td>don't wait</td>\n<td># opens new
window</td>\n</tr>\n<tr>\n<td>Select
Window</td>\n<td>popupName</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Title
Should Be</td>\n<td>Popup
Title</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Select
Window</td>\n<td></td>\n<td></td>\n<td># Chooses the main window
again</td>\n</tr>\n</table>\n<b>NOTE:</b> Selecting windows opened by links
with target <span class=\"name\">_blank</span> does not seem to work on
Internet Explorer.","name":"Select Window","shortdoc":"Selects the window
found with `locator` as the context of
actions."},{"args":"seconds","doc":"Sets the delay that is waited after
each Selenium command.\n\nThis is useful mainly in slowing down the test
execution to be able to view the execution. <span
class=\"name\">seconds</span> may be given in Robot Framework time format.
Returns the previous speed value.\n\nExample:\n<table
class=\"robotdoc\">\n<tr>\n<td>Set Selenium Speed</td>\n<td>2
seconds</td>\n</tr>\n</table>","name":"Set Selenium Speed","shortdoc":"Sets
the delay that is waited after each Selenium
command."},{"args":"seconds","doc":"Sets the timeout used by various
keywords.\n\nKeywords that expect a page load to happen will fail if the
page is not loaded within the timeout specified with <span
class=\"name\">seconds</span>. Starting from SeleniumLibrary 2.6, this
timeout is also the default timeout with various <span
class=\"name\">Wait ...</span> keywords. See <a href=\"#introduction\"
class=\"name\">introduction</a> for more information about timeouts and
handling page loads.\n\nThe previous timeout value is returned by this
keyword and can be used to set the old value back later. The default
timeout is 5 seconds, but it can be altered in <a href=\"#importing\"
class=\"name\">importing</a>.\n\nExample:\n<table
class=\"robotdoc\">\n<tr>\n<td>${orig timeout} =</td>\n<td>Set Selenium
Timeout</td>\n<td>15 seconds</td>\n</tr>\n<tr>\n<td>Open page that loads
slowly</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Set Selenium
Timeout</td>\n<td>${orig
timeout}</td>\n<td></td>\n</tr>\n</table>","name":"Set Selenium
Timeout","shortdoc":"Sets the timeout used by various
keywords."},{"args":"locator, event","doc":"Simulates <span
class=\"name\">event</span> on element identified by <span
class=\"name\">locator</span>.\n\nThis keyword is useful if element has
OnEvent handler that needs to be explicitly invoked.\n\nSee <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Simulate","shortdoc":"Simulates `event` on
element identified by `locator`."},{"args":"*params","doc":"Starts the
Selenium Server provided with SeleniumLibrary.\n\n<span
class=\"name\">params</span> can contain additional command line options
given to the Selenium Server. This keyword uses some command line options
automatically:\n\n1) The port given in <a href=\"#importing\"
class=\"name\">importing</a> is added to <span class=\"name\">params</span>
automatically using the <span class=\"name\">-port</span> option.\n\n2) A
custom Firefox profile that is included with the library and contains
automation friendly settings is enabled via the <span
class=\"name\">-firefoxProfileTemplate</span> option. You can override this
profile with your own custom profile by using the same argument in <span
class=\"name\">params</span> yourself. To use the default profile on your
machine, use this argument with <span class=\"name\">DEFAULT</span> value
(case-sensitive). Using a custom Firefox profile automatically is a new
feature in SeleniumLibrary 2.5. For more information see <a
href=\"
http://code.google.com/p/robotframework-seleniumlibrary/wiki/CustomFirefoxProfile\">
http://code.google.com/p/robotframework-seleniumlibrary/wiki/CustomFirefoxProfile</a>\n\n3)
Starting from SeleniumLibrary 2.6, if there is <span
class=\"name\">user-extensions.js</span> file in the same directory as
Selenium Server jar, it is loaded using the <span
class=\"name\">-userExtensions</span> option. This is not done if the
option is defined in <span class=\"name\">params</span>. By default, such
extension file providing Flex testing support is loaded
automatically.\n\nExamples:\n<table class=\"robotdoc\">\n<tr>\n<td>Start
Selenium Server</td>\n<td></td>\n<td></td>\n<td># Default settings. Uses
the Firefox profile supplied with the library.</td>\n</tr>\n<tr>\n<td>Start
Selenium
Server</td>\n<td>-firefoxProfileTemplate</td>\n<td>C:\\\\the\\\\path</td>\n<td>#
Uses custom Firefox profile.</td>\n</tr>\n<tr>\n<td>Start Selenium
Server</td>\n<td>-firefoxProfileTemplate</td>\n<td>DEFAULT</td>\n<td># Uses
default Firefox profile on your machine.</td>\n</tr>\n<tr>\n<td>Start
Selenium
Server</td>\n<td>-avoidProxy</td>\n<td>-ensureCleanSession</td>\n<td># Uses
various Selenium Server settings.</td>\n</tr>\n</table>\nAll Selenium
Server output is written into <span
class=\"name\">selenium_server_log.txt</span> file in the same directory as
the Robot Framework log file.\n\nIf the test execution round starts and
stops Selenium Server multiple times, it is best to open the server to
different port each time.\n\n<b>NOTE:</b> This keyword requires <span
class=\"name\">subprocess</span> module which is available on Python/Jython
2.5 or newer.","name":"Start Selenium Server","shortdoc":"Starts the
Selenium Server provided with SeleniumLibrary."},{"args":"","doc":"Stops
the selenium server (and closes all browsers).","name":"Stop Selenium
Server","shortdoc":"Stops the selenium server (and closes all
browsers)."},{"args":"locator=, dont_wait=","doc":"Submits a form
identified by <span class=\"name\">locator</span>.\n\nIf <span
class=\"name\">locator</span> is empty, first form in the page will be
submitted. Key attributes for forms are <span class=\"name\">id</span> and
<span class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating elements and
about meaning of <span class=\"name\">dont_wait</span>
argument.","name":"Submit Form","shortdoc":"Submits a form identified by
`locator`."},{"args":"index_or_alias","doc":"Switches between active
browsers using index or alias.\n\nIndex is got from <a href=\"#Open
Browser\" class=\"name\">Open Browser</a> and alias can be given to
it.\n\nExamples:\n<table class=\"robotdoc\">\n<tr>\n<td>Open
Browser</td>\n<td><a
href=\"
http://google.com\">
http://google.com</a></td>\n<td>ff</td>\n<td></td>\n</tr>\n<tr>\n<td>Location
Should Be</td>\n<td><a
href=\"
http://google.com\">
http://google.com</a></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Open
Browser</td>\n<td><a
href=\"
http://yahoo.com\">
http://yahoo.com</a></td>\n<td>ie</td>\n<td>2nd
conn</td>\n</tr>\n<tr>\n<td>Location Should Be</td>\n<td><a
href=\"
http://yahoo.com\">
http://yahoo.com</a></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Switch
Browser</td>\n<td>1</td>\n<td>#
index</td>\n<td></td>\n</tr>\n<tr>\n<td>Page Should Contain</td>\n<td>I'm
feeling lucky</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Switch
Browser</td>\n<td>2nd conn</td>\n<td>#
alias</td>\n<td></td>\n</tr>\n<tr>\n<td>Page Should Contain</td>\n<td>More
Yahoo!</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Close All
Browsers</td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</table>\nAbove
example expects that there was no other open browsers when opening the
first one because it used index '1' when switching to it later. If you
aren't sure about that you can store the index into a variable as
below.\n\n<table class=\"robotdoc\">\n<tr>\n<td>${id} =</td>\n<td>Open
Browser</td>\n<td><a
href=\"
http://google.com\">
http://google.com</a></td>\n<td>*firefox</td>\n</tr>\n<tr>\n<td>#
Do
something ...</td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Switch
Browser</td>\n<td>${id}</td>\n<td></td>\n<td></td>\n</tr>\n</table>","name":"Switch
Browser","shortdoc":"Switches between active browsers using index or
alias."},{"args":"table_locator, row, column, expected","doc":"Verifies
that a certain cell in a table contains <span
class=\"name\">expected</span>.\n\nRow and Column number start from 1. This
keyword passes if the specified cell contains the given content. If you
want to test that the cell content matches exactly, or that it e.g. starts
with some text, use <a href=\"#Get Table Cell\" class=\"name\">Get Table
Cell</a> keyword in combination with built-in keywords such as <span
class=\"name\">Should Be Equal</span> or <span class=\"name\">Should Start
With</span>.\n\nTo understand how tables are identified, please take a look
at the <a href=\"#introduction\"
class=\"name\">introduction</a>.","name":"Table Cell Should
Contain","shortdoc":"Verifies that a certain cell in a table contains
`expected`."},{"args":"table_locator, col, expected,
loglevel=INFO","doc":"Verifies that a specific column contains <span
class=\"name\">expected</span>.\n\nThe first leftmost column is column
number 1. If the table contains cells that span multiple columns, those
merged cells count as a single column. For example both tests below work,
if in one row columns A and B are merged with colspan=\"2\", and the
logical third column contains \"C\".\n\nExample:\n<table
class=\"robotdoc\">\n<tr>\n<td>Table Column Should
Contain</td>\n<td>tableId</td>\n<td>3</td>\n<td>C</td>\n</tr>\n<tr>\n<td>Table
Column Should
Contain</td>\n<td>tableId</td>\n<td>2</td>\n<td>C</td>\n</tr>\n</table>\nTo
understand how tables are identified, please take a look at the <a
href=\"#introduction\" class=\"name\">introduction</a>.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">loglevel</span>
argument.","name":"Table Column Should Contain","shortdoc":"Verifies that a
specific column contains `expected`."},{"args":"table_locator, expected,
loglevel=INFO","doc":"Verifies that the table footer contains <span
class=\"name\">expected</span>.\n\nWith table footer can be described as
any <td>-element that is child of a <tfoot>-element. To
understand how tables are identified, please take a look at the <a
href=\"#introduction\" class=\"name\">introduction</a>.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">loglevel</span>
argument.","name":"Table Footer Should Contain","shortdoc":"Verifies that
the table footer contains `expected`."},{"args":"table_locator, expected,
loglevel=INFO","doc":"Verifies that the table header, i.e. any
<th>...</th> element, contains <span
class=\"name\">expected</span>.\n\nTo understand how tables are identified,
please take a look at the <a href=\"#introduction\"
class=\"name\">introduction</a>.\n\nSee <a href=\"#Page Should Contain
Element\" class=\"name\">Page Should Contain Element</a> for explanation
about <span class=\"name\">loglevel</span> argument.","name":"Table Header
Should Contain","shortdoc":"Verifies that the table header, i.e. any
<th>...</th> element, contains `expected`."},{"args":"table_locator, row,
expected, loglevel=INFO","doc":"Verifies that a specific table row contains
<span class=\"name\">expected</span>.\n\nThe uppermost row is row number 1.
For tables that are structured with thead, tbody and tfoot, only the tbody
section is searched. Please use <a href=\"#Table Header Should Contain\"
class=\"name\">Table Header Should Contain</a> or <a href=\"#Table Footer
Should Contain\" class=\"name\">Table Footer Should Contain</a> for tests
against the header or footer content.\n\nIf the table contains cells that
span multiple rows, a match only occurs for the uppermost row of those
merged cells. To understand how tables are identified, please take a look
at the <a href=\"#introduction\" class=\"name\">introduction</a>.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">loglevel</span>
argument.","name":"Table Row Should Contain","shortdoc":"Verifies that a
specific table row contains `expected`."},{"args":"table_locator, expected,
loglevel=INFO","doc":"Verifies that <span class=\"name\">expected</span>
can be found somewhere in the table.\n\nTo understand how tables are
identified, please take a look at the <a href=\"#introduction\"
class=\"name\">introduction</a>.\n\nSee <a href=\"#Page Should Contain
Element\" class=\"name\">Page Should Contain Element</a> for explanation
about <span class=\"name\">loglevel</span> argument.","name":"Table Should
Contain","shortdoc":"Verifies that `expected` can be found somewhere in the
table."},{"args":"locator, expected, message=","doc":"Verifies text field
identified by <span class=\"name\">locator</span> contains text <span
class=\"name\">expected</span>.\n\n<span class=\"name\">message</span> can
be used to override default error message.\n\nKey attributes for text
fields are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Textfield Should Contain","shortdoc":"Verifies text
field identified by `locator` contains text `expected`."},{"args":"locator,
expected, message=","doc":"Verifies the value in text field identified by
<span class=\"name\">locator</span> is exactly <span
class=\"name\">expected</span>.\n\n<span class=\"name\">message</span> can
be used to override default error message.\n\nKey attributes for text
fields are <span class=\"name\">id</span> and <span
class=\"name\">name</span>. See <a href=\"#introduction\"
class=\"name\">introduction</a> for details about locating
elements.","name":"Textfield Value Should Be","shortdoc":"Verifies the
value in text field identified by `locator` is exactly
`expected`."},{"args":"title","doc":"Verifies that current page title
equals <span class=\"name\">title</span>.","name":"Title Should
Be","shortdoc":"Verifies that current page title equals
`title`."},{"args":"locator","doc":"Removes selection of checkbox
identified by <span class=\"name\">locator</span>.\n\nDoes nothing if the
checkbox is not checked. Key attributes for checkboxes are <span
class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.","name":"Unselect Checkbox","shortdoc":"Removes
selection of checkbox identified by `locator`."},{"args":"","doc":"Sets the
top frame as the current frame.","name":"Unselect Frame","shortdoc":"Sets
the top frame as the current frame."},{"args":"locator,
*values","doc":"Unselects given values from list identified by
locator.\n\nAs a special case, giving empty list as <span
class=\"name\">*selection</span> will remove all selections.\n\nList
keywords work on both lists and combo boxes. Key attributes for lists are
<span class=\"name\">id</span> and <span class=\"name\">name</span>. See <a
href=\"#introduction\" class=\"name\">introduction</a> for details about
locating elements.\n\nThis keyword does not support waiting for possible
page load automatically. If that is needed, keyword <a href=\"#Wait Until
Page Loaded\" class=\"name\">Wait Until Page Loaded</a> can be used after
this keyword.","name":"Unselect From List","shortdoc":"Unselects given
values from list identified by locator."},{"args":"condition, timeout=None,
error=None","doc":"Waits until the given <span
class=\"name\">condition</span> is true or <span
class=\"name\">timeout</span> expires.\n\nThe <span
class=\"name\">condition</span> can be arbitrary JavaScript expression. It
can be multiple lines, but only the statement in the last line is used for
evaluation. See <a href=\"#Execute Javascript\" class=\"name\">Execute
JavaScript</a> for information about accessing the actual contents of the
window through JavaScript.\n\n<span class=\"name\">error</span> can be used
to override the default error message.\n\nSee <a href=\"#introduction\"
class=\"name\">introduction</a> for more information about <span
class=\"name\">timeout</span> and its default value.\n\nSee also <a
href=\"#Wait Until Page Contains\" class=\"name\">Wait Until Page
Contains</a>, <a href=\"#Wait Until Page Contains Element\"
class=\"name\">Wait Until Page Contains Element</a> and BuiltIn keyword
<span class=\"name\">Wait Until Keyword Succeeds</span>.","name":"Wait For
Condition","shortdoc":"Waits until the given `condition` is true or
`timeout` expires."},{"args":"locator, timeout=None","doc":"Waits until an
element is found by <span class=\"name\">locator</span> or <span
class=\"name\">timeout</span> expires.\n\nSee <a href=\"#introduction\"
class=\"name\">introduction</a> for more information about locating Flex
elements and timeouts.","name":"Wait For Flex Element","shortdoc":"Waits
until an element is found by `locator` or `timeout`
expires."},{"args":"text, timeout=None, error=None","doc":"Waits until
<span class=\"name\">text</span> appears on current page.\n\nFails if <span
class=\"name\">timeout</span> expires before the text appears. See <a
href=\"#introduction\" class=\"name\">introduction</a> for more information
about <span class=\"name\">timeout</span> and its default value.\n\n<span
class=\"name\">error</span> can be used to override the default error
message.\n\nSee also <a href=\"#Wait Until Page Contains Element\"
class=\"name\">Wait Until Page Contains Element</a>, <a href=\"#Wait For
Condition\" class=\"name\">Wait For Condition</a> and BuiltIn keyword <span
class=\"name\">Wait Until Keyword Succeeds</span>.","name":"Wait Until Page
Contains","shortdoc":"Waits until `text` appears on current
page."},{"args":"locator, timeout=None, error=None","doc":"Waits until
element specified with <span class=\"name\">locator</span> appears on
current page.\n\nFails if <span class=\"name\">timeout</span> expires
before the element appears. See <a href=\"#introduction\"
class=\"name\">introduction</a> for more information about <span
class=\"name\">timeout</span> and its default value.\n\n<span
class=\"name\">error</span> can be used to override the default error
message.\n\nSee also <a href=\"#Wait Until Page Contains\"
class=\"name\">Wait Until Page Contains</a>, <a href=\"#Wait For
Condition\" class=\"name\">Wait For Condition</a> and BuiltIn keyword <span
class=\"name\">Wait Until Keyword Succeeds</span>.","name":"Wait Until Page
Contains Element","shortdoc":"Waits until element specified with `locator`
appears on current page."},{"args":"timeout=None","doc":"Waits for a page
load to happen.\n\nThis keyword can be used after performing an action that
causes a page load to ensure that following keywords see the page fully
loaded.\n\n<span class=\"name\">timeout</span> is the time to wait for the
page load to happen, after which this keyword fails. If <span
class=\"name\">timeout</span> is not provided, the value given in <a
href=\"#importing\" class=\"name\">importing</a> or using keyword <span
class=\"name\">Set Timeout</span> is used.\n\nMany of the keywords that
cause a page load take an optional argument <span
class=\"name\">dont_wait</span> that can be also used to wait/not wait page
load. See <a href=\"#introduction\" class=\"name\">introduction</a> for
more details.\n\nThis keyword was added in SeleniumLibrary
2.5.","name":"Wait Until Page Loaded","shortdoc":"Waits for a page load to
happen."},{"args":"xpath, expected_xpath_count, message=,
loglevel=INFO","doc":"Verifies that the page contains the given number of
elements located by the given <span class=\"name\">xpath</span>.\n\nSee <a
href=\"#Page Should Contain Element\" class=\"name\">Page Should Contain
Element</a> for explanation about <span class=\"name\">message</span> and
<span class=\"name\">loglevel</span> arguments.\n\nThis keyword was added
in SeleniumLibrary 2.5.","name":"Xpath Should Match X
Times","shortdoc":"Verifies that the page contains the given number of
elements located by the given
`xpath`."}],"name":"SeleniumLibrary","named_args":true,"scope":"global","version":"2.9"};
+</script>
+<title></title>
</head>
<body>
-<h1>SeleniumLibrary</h1>
-<b>Version:</b> 2.8.1<br>
-<b>Scope:</b> global<br>
-<b>Named arguments: </b>
-supported
-
-<h2 id="introduction">Introduction</h2>
-<div class="libdoc">SeleniumLibrary is a web testing library for Robot
Test Automation Framework.
-
-It uses the Selenium Remote Control tool internally to control a web
browser. See <a
href="
http://selenium-rc.openqa.org/">
http://selenium-rc.openqa.org/</a>
for more information on Selenium tool.
-
-SeleniumLibrary runs tests in a real browser instance. It should work in
most modern browsers and can be used with both Python and Jython
interpreters.
-
-<b>Before running the tests</b>
-
-Prior to running test cases using SeleniumLibrary, the Selenium Server
must be started. This can be done using keyword <a href="#Start Selenium
Server" class="name">Start Selenium Server</a> or from the command line by
using command: <span class="name">java -jar
/path/to/selenium-server.jar</span>. The Selenium Server is included in the
SeleniumLibrary distribution and can be found under <span
class="name">[PythonLibs]/site-packages/SeleniumLibrary/lib</span>.
Additionally, <a href="#Open Browser" class="name">Open Browser</a> keyword
must be used in order to open browser in the desired location before any
other keyword from the library may be used.
-
-<b>Locating elements</b>
-
-All keywords in SeleniumLibrary that need to find an element on the page
take an argument, <span class="name">locator</span>. In the most common
case, <span class="name">locator</span> is matched against the values of
key attributes of the particular element type. For example, <span
class="name">id</span> and <span class="name">name</span> are key
attributes to all elements, and locating elements is easy using just the
<span class="name">id</span> as a <span class="name">locator</span>.
-
-Asterisk character may be used as a wildcard in locators, but it only
works as the last character of the expression. In the middle of the locator
it is interpreted as literal '*'.
-
-It is also possible to give an arbitrary XPath or DOM expression as <span
class="name">locator</span>. In this case, the expression must be prefixed
with either 'xpath=' or 'dom='.
-
-Examples:
-<table border="1" class="doc">
-<tr>
-<td>Click Link</td>
-<td>my link</td>
-<td># Matches if either link text or 'id', 'name' or 'href' of a link
equals 'my link'</td>
-</tr>
-<tr>
-<td>Page Should Contain Link</td>
-<td>Link id *</td>
-<td># Passes if the page contain any link starting with 'Link id'</td>
-</tr>
-<tr>
-<td>Select Checkbox</td>
-<td>xpath=//table[0]/input[@name='my_checkbox']</td>
-<td># Using XPath</td>
-</tr>
-<tr>
-<td>Click Image</td>
-<td>dom=document.images[56]</td>
-<td># Using a DOM expression</td>
-</tr>
-</table>
-Table related keywords, such as <a href="#Table Should Contain"
class="name">Table Should Contain</a>, allow identifying tables either by
an id, by a CSS locator, or by an XPath expression. The XPath support was
added in SeleniumLibrary 2.6.
-
-Examples:
-<table border="1" class="doc">
-<tr>
-<td>Table Should Contain</td>
-<td>tableID</td>
-<td>text</td>
-</tr>
-<tr>
-<td>Table Should Contain</td>
-<td>css=h2.someClass ~ table:last-child()</td>
-<td>text</td>
-</tr>
-<tr>
-<td>Table Should Contain</td>
-<td>xpath=//table/[@name="myTable"]</td>
-<td>text</td>
-</tr>
-</table>
-<b>Locating Flex elements</b>
-
-SeleniumLibary 2.6 and newer support testing Adobe Flex and Flash
applications using Flex Pilot tool. For more information, including the
required bootstrapping, see <a
href="
http://code.google.com/p/robotframework-seleniumlibrary/wiki/FlexTesting">
http://code.google.com/p/robotframework-seleniumlibrary/wiki/FlexTesting</a>
-
-By default Flex elements are located based on <span class="name">id</span>
they have in Flex source code. Other supported locators are <span
class="name">name</span>, <span class="name">automationName</span>, <span
class="name">text</span>, <span class="name">htmlText</span>, <span
class="name">label</span> and xpath-like <span class="name">chain</span>.
To use them, you need to prefix the value with the locator type like <span
class="name">name=example</span>. Locators also support <span
class="name">*</span> as a wildcard.
-
-Examples:
-<table border="1" class="doc">
-<tr>
-<td>Click Flex Element</td>
-<td>foo</td>
-<td># Search element by id</td>
-</tr>
-<tr>
-<td>Click Flex Element</td>
-<td>name=myName</td>
-<td># Search element by name</td>
-</tr>
-<tr>
-<td>Click Flex Element</td>
-<td>label=Hello!</td>
-<td># Search element by label text</td>
-</tr>
-<tr>
-<td>Click Flex Element</td>
-<td>chain=id:someId/name:someName</td>
-<td># Search element first by id and then its child by name</td>
-</tr>
-<tr>
-<td>Click Flex Element</td>
-<td>name=wild*</td>
-<td># Name with wildcard</td>
-</tr>
-<tr>
-<td>Click Flex Element</td>
-<td>chain=name:*llo/name:world</td>
-<td># Chain with wildcard</td>
-</tr>
-</table>
-<b>Handling page load events</b>
-
-Some keywords that may cause a page to load take an additional argument
<span class="name">dont_wait</span> that is used to determine whether a new
page is expected to load or not. By default, a page load is expected to
happen whenever a link or image is clicked, or a form submitted. If a page
load does not happen (if the link only executes some JavaScript, for
example), a non-empty value must be given for the <span
class="name">dont_wait</span> argument. How much to wait is determined by a
timeout discussed in the next section.
-
-There are also some keywords that may cause a page to load but by default
we expect them not to. For these cases, the keywords have an optional <span
class="name">wait</span> argument, and providing a non-empty value for it
will cause the keyword to wait. An other possibility is using <a
href="#Wait Until Page Loaded" class="name">Wait Until Page Loaded</a>
keyword which also accepts a custom timeout.
-
-Examples:
-<table border="1" class="doc">
-<tr>
-<td>Click Link</td>
-<td>link text</td>
-<td></td>
-<td></td>
-<td># A page is expected to load.</td>
-</tr>
-<tr>
-<td>Click Link</td>
-<td>another link</td>
-<td>don't wait</td>
-<td></td>
-<td># A page is not expected to load.</td>
-</tr>
-<tr>
-<td>Select Radio Button</td>
-<td>group1</td>
-<td>value1</td>
-<td></td>
-<td># A page is not expected to load.</td>
-</tr>
-<tr>
-<td>Select Radio Button</td>
-<td>group2</td>
-<td>value2</td>
-<td>and wait</td>
-<td># A page is expected to load.</td>
-</tr>
-</table>
-<b>Timeouts</b>
-
-How much to wait when a new page is loaded is specified by a timeout that
can be given in <a href="#importing" class="name">importing</a> (default is
5 seconds) or dynamically with <a href="#Set Selenium Timeout"
class="name">Set Selenium Timeout</a> keyword.
-
-There are also several <span class="name">Wait ...</span> keywords that
take timeout as an argument. Starting from SeleniumLibrary 2.6 all these
timeouts are optional and the same timeout used with page loads is used as
a default.
-
-All timeouts can be given as numbers considered seconds (e.g. 0.5 or 42)
or in Robot Framework's time syntax (e.g. '1.5 seconds' or '1 min 30 s').
For more information about the time syntax see: <a
href="
http://robotframework.googlecode.com/svn/trunk/doc/userguide/RobotFrameworkUserGuide.html#time-format">
http://robotframework.googlecode.com/svn/trunk/doc/userguide/RobotFrameworkUserGuide.html#time-format</a>.
-
-<b>Testing sites using https</b>
-
-Usually, https works out of the box. However, there may be trouble with
self-signed certificates. We have a Wiki page describing how to test
against these, using Firefox: <a
href="
http://code.google.com/p/robotframework-seleniumlibrary/wiki/HandlingSelfSignedCertificates">
http://code.google.com/p/robotframework-seleniumlibrary/wiki/HandlingSelfSignedCertificates</a></div>
-
-<h2 id="importing">Importing</h2>
-<table border="1" class="keywords libdoc">
-<tr>
- <th class="arg">Arguments</th>
- <th class="doc">Documentation</th>
-</tr>
-<tr>
- <td class="arg">timeout=5.0, server_host=localhost, server_port=4444,
jar_path=None, run_on_failure=Capture Screenshot</td>
- <td class="doc">SeleniumLibrary can be imported with optional arguments.
-
-<span class="name">timeout</span> is the default timeout used to wait for
page load actions. It can be later set with <a href="#Set Selenium Timeout"
class="name">Set Selenium Timeout</a>
-
-<span class="name">server_host</span> and <span
class="name">server_port</span> are used to connect to Selenium Server.
Browsers opened with this SeleniumLibrary instance will be attached to that
server. Note that the Selenium Server must be running before <a href="#Open
Browser" class="name">Open Browser</a> keyword can be used. Selenium Server
can be started with keyword <a href="#Start Selenium Server"
class="name">Start Selenium Server</a>. Starting from SeleniumLibrary
2.6.1, it is possible to give <span class="name">server_host</span> as a
URL with a possible embedded port, for example <span
class="name">
http://192.168.52.1:4444</span>. If <span
class="name">server_host</span> contains port, the value of <span
class="name">server_port</span> is ignored.
-
-<span class="name">jar_path</span> is the absolute path to the
selenium-server.jar file to be used by the library. If set, a custom,
modified version can be started instead of the default one distributed with
the library.
-
-<span class="name">run_on_failure</span> specifies the name of a
SeleniumLibrary keyword to execute when another SeleniumLibrary keyword
fails. By default <a href="#Capture Screenshot" class="name">Capture
Screenshot</a> will be used to take a screenshot of the situation. Using
any value that is not a keyword name will disable this feature altogether.
See <a href="#Register Keyword To Run On Failure" class="name">Register
Keyword To Run On Failure</a> keyword for more information about this
functionality that was added in SeleniumLibrary 2.5.
-
-Because there are many optional arguments, it is often a good idea to use
the handy named-arguments syntax supported by Robot Framework 2.5 and
later. This is demonstrated by the last two examples below.
-
-Examples:
-<table border="1" class="doc">
-<tr>
-<td>Library</td>
-<td>SeleniumLibrary</td>
-<td>15</td>
-<td></td>
-<td></td>
-<td># Sets default timeout</td>
-</tr>
-<tr>
-<td>Library</td>
-<td>SeleniumLibrary</td>
-<td></td>
-<td></td>
-<td>4455</td>
-<td># Use default timeout and host but specify different port.</td>
-</tr>
-<tr>
-<td>Library</td>
-<td>SeleniumLibrary</td>
-<td>server_host=
http://192.168.52.1:4444</td>
-<td></td>
-<td></td>
-<td># Host as URL.</td>
-</tr>
-<tr>
-<td>Library</td>
-<td>SeleniumLibrary</td>
-<td>run_on_failure=Nothing</td>
-<td></td>
-<td></td>
-<td># Do nothing on failure.</td>
-</tr>
-</table></td>
-</tr>
-</table>
-
-<h2>Shortcuts</h2>
-<div class='shortcuts'>
-<a href="#Add Location Strategy" title="Adds a custom location
strategy.">Add Location Strategy</a>
- ·
-<a href="#Alert Should Be Present" title="Verifies an alert is present and
dismisses it.">Alert Should Be Present</a>
- ·
-<a href="#Assign Id To Element" title="Assigns a temporary identifier to
element specified by `locator`.">Assign Id To Element</a>
- ·
-<a href="#Call Selenium Api" title="Calls a method in the Selenium remote
control API directly.">Call Selenium Api</a>
- ·
-<a href="#Capture Page Screenshot" title="Takes a screenshot of the
current page and embeds it into the
log.">Capture Page Screenshot</a>
- ·
-<a href="#Capture Screenshot" title="Takes a screenshot of the entire
screen and embeds it into the log.">Capture Screenshot</a>
- ·
-<a href="#Checkbox Should Be Selected" title="Verifies checkbox identified
by `locator` is
selected/checked.">Checkbox Should Be Selected</a>
- ·
-<a href="#Checkbox Should Not Be Selected" title="Verifies checkbox
identified by `locator` is not
selected/checked.">Checkbox Should Not Be Selected</a>
- ·
-<a href="#Choose Cancel On Next Confirmation" title="Cancel will be
selected the next time `Confirm Action` is
used.">Choose Cancel On Next Confirmation</a>
- ·
-<a href="#Choose File" title="Inputs the `file_path` into file input field
found by `identifier`.">Choose File</a>
- ·
-<a href="#Click Button" title="Clicks a button identified by
`locator`.">Click Button</a>
- ·
-<a href="#Click Element" title="Click element identified by
`locator`.">Click Element</a>
- ·
-<a href="#Click Flex Element" title="Clicks an element found by
`locator`.">Click Flex Element</a>
- ·
-<a href="#Click Image" title="Clicks an image found by
`locator`.">Click Image</a>
- ·
-<a href="#Click Link" title="Clicks a link identified by
locator.">Click Link</a>
- ·
-<a href="#Close All Browsers" title="Closes all open browsers and empties
the connection cache.">Close All Browsers</a>
- ·
-<a href="#Close Browser" title="Closes the current
browser.">Close Browser</a>
- ·
-<a href="#Close Window" title="Closes currently opened pop-up
window.">Close Window</a>
- ·
-<a href="#Confirm Action" title="Dismisses currently shown confirmation
dialog and returns it's message.">Confirm Action</a>
- ·
-<a href="#Current Frame Contains" title="Verifies that current page
contains `text`.">Current Frame Contains</a>
- ·
-<a href="#Current Frame Should Contain" title="Verifies that current page
contains `text`.">Current Frame Should Contain</a>
- ·
-<a href="#Delete All Cookies" title="Deletes all cookies by calling
`Delete Cookie` repeatedly.">Delete All Cookies</a>
- ·
-<a href="#Delete Cookie" title="Deletes cookie matching `name` and
`options`.">Delete Cookie</a>
- ·
-<a href="#Double Click Element" title="Double click element identified by
`locator`.">Double Click Element</a>
- ·
-<a href="#Double Click Flex Element" title="Double clicks an element found
by `locator`.">Double Click Flex Element</a>
- ·
-<a href="#Drag And Drop" title="Drags element identified with
`locator`.">Drag And Drop</a>
- ·
-<a href="#Element Should Be Disabled" title="Verifies that element
identified with `locator` is
disabled.">Element Should Be Disabled</a>
- ·
-<a href="#Element Should Be Enabled" title="Verifies that element
identified with `locator` is
enabled.">Element Should Be Enabled</a>
- ·
-<a href="#Element Should Be Visible" title="Verifies that the element
identified by `locator` is
visible.">Element Should Be Visible</a>
- ·
-<a href="#Element Should Contain" title="Verifies element identified by
`locator` contains text `expected`.">Element Should Contain</a>
- ·
-<a href="#Element Should Not Be Visible" title="Verifies that the element
identified by `locator` is NOT
visible.">Element Should Not Be Visible</a>
- ·
-<a href="#Element Text Should Be" title="Verifies element identified by
`locator` exactly contains text
`expected`.">Element Text Should Be</a>
- ·
-<a href="#Execute Javascript" title="Executes the given JavaScript
code.">Execute Javascript</a>
- ·
-<a href="#Flex Element Property Should Be" title="Verifies than an element
found by `locator` has correct
property.">Flex Element Property Should Be</a>
- ·
-<a href="#Flex Element Should Exist" title="Verifies that an element can
be found by `locator`.">Flex Element Should Exist</a>
- ·
-<a href="#Flex Element Should Not Exist" title="Verifies that an element
is not found by
`locator`.">Flex Element Should Not Exist</a>
- ·
-<a href="#Flex Element Text Should Be" title="Verifies that an element
found by `locator` has text
`expected`.">Flex Element Text Should Be</a>
- ·
-<a href="#Focus" title="Sets focus to element identified by
`locator`.">Focus</a>
- ·
-<a href="#Frame Should Contain" title="Verifies frame identified by
`locator` contains `text`.">Frame Should Contain</a>
- ·
-<a href="#Frame Should Contain Text" title="Verifies frame identified by
`locator` contains `text`.">Frame Should Contain Text</a>
- ·
-<a href="#Get Alert Message" title="Returns the text of current JavaScript
alert.">Get Alert Message</a>
- ·
-<a href="#Get All Links" title="Returns a list containing ids of all links
found in current page.">Get All Links</a>
- ·
-<a href="#Get Cookie Value" title="Returns value of cookie found with
`name`.">Get Cookie Value</a>
- ·
-<a href="#Get Cookies" title="Returns all cookies of the current
page.">Get Cookies</a>
- ·
-<a href="#Get Element Attribute" title="Return value of element
attribute.">Get Element Attribute</a>
- ·
-<a href="#Get Horizontal Position" title="Returns horizontal position of
element identified by `locator`.">Get Horizontal Position</a>
- ·
-<a href="#Get List Items" title="Returns the values in the list identified
by `locator`.">Get List Items</a>
- ·
-<a href="#Get Location" title="Returns the current
location.">Get Location</a>
- ·
-<a href="#Get Matching Xpath Count" title="Returns number of elements
matching `xpath`">Get Matching Xpath Count</a>
- ·
-<a href="#Get Selected List Label" title="Returns the visible label of the
selected element from the list identified by
`locator`.">Get Selected List Label</a>
- ·
-<a href="#Get Selected List Labels" title="Returns the visible labels of
selected elements (as a list) from the list identified by
`locator`.">Get Selected List Labels</a>
- ·
-<a href="#Get Selected List Value" title="Returns the value of the
selected element from the list identified by
`locator`.">Get Selected List Value</a>
- ·
-<a href="#Get Selected List Values" title="Returns the values of selected
elements (as a list) from the list identified by
`locator`.">Get Selected List Values</a>
- ·
-<a href="#Get Source" title="Returns the entire html source of the current
page or frame.">Get Source</a>
- ·
-<a href="#Get Table Cell" title="Returns the content from a table
cell.">Get Table Cell</a>
- ·
-<a href="#Get Text" title="Returns the text of element identified by
`locator`.">Get Text</a>
- ·
-<a href="#Get Title" title="Returns title of current
page.">Get Title</a>
- ·
-<a href="#Get Value" title="Returns the value attribute of element
identified by `locator`.">Get Value</a>
- ·
-<a href="#Get Vertical Position" title="Returns vertical position of
element identified by `locator`.">Get Vertical Position</a>
- ·
-<a href="#Get Window Identifiers" title="Returns and logs id attributes of
all windows known to the browser.">Get Window Identifiers</a>
- ·
-<a href="#Get Window Names" title="Returns and logs names of all windows
known to the browser.">Get Window Names</a>
- ·
-<a href="#Get Window Titles" title="Returns and logs titles of all windows
known to the browser.">Get Window Titles</a>
- ·
-<a href="#Go Back" title="Simulates the user clicking the "back"
button on their browser.">Go Back</a>
- ·
-<a href="#Go To" title="Navigates the active browser instance to the
provided URL.">Go To</a>
- ·
-<a href="#Highlight Element" title="Highlights element found with
`locator` briefly.">Highlight Element</a>
- ·
-<a href="#Input Password" title="Types the given password into text field
identified by `locator`.">Input Password</a>
- ·
-<a href="#Input Text" title="Types the given `text` into text field
identified by `locator`.">Input Text</a>
- ·
-<a href="#Input Text Into Flex Element" title="Inputs `text` into an
element found by
`locator`.">Input Text Into Flex Element</a>
- ·
-<a href="#List Selection Should Be" title="Verifies the selection of list
identified by `locator` is exactly
`*values`.">List Selection Should Be</a>
- ·
-<a href="#List Should Have No Selections" title="Verifies list identified
by `locator` has no
selections.">List Should Have No Selections</a>
- ·
-<a href="#Location Should Be" title="Verifies that current URL is exactly
`url`.">Location Should Be</a>
- ·
-<a href="#Location Should Contain" title="Verifies that current URL
contains `expected`.">Location Should Contain</a>
- ·
-<a href="#Log Source" title="Logs and returns the entire html source of
the current page or frame.">Log Source</a>
- ·
-<a href="#Maximize Browser Window" title="Maximizes current browser
window.">Maximize Browser Window</a>
- ·
-<a href="#Mouse Down" title="Simulates pressing the left mouse button on
the element specified by `locator`.">Mouse Down</a>
- ·
-<a href="#Mouse Down On Image" title="Simulates a mouse down event on an
image.">Mouse Down On Image</a>
- ·
-<a href="#Mouse Down On Link" title="Simulates a mouse down event on a
link.">Mouse Down On Link</a>
- ·
-<a href="#Mouse Out" title="Simulates moving mouse away from the element
specified by `locator`.">Mouse Out</a>
- ·
-<a href="#Mouse Over" title="Simulates hovering mouse over the element
specified by `locator`.">Mouse Over</a>
- ·
-<a href="#Mouse Up" title="Simulates releasing the left mouse button on
the element specified by `locator`.">Mouse Up</a>
- ·
-<a href="#Open Browser" title="Opens a new browser instance to given
URL.">Open Browser</a>
- ·
-<a href="#Open Context Menu" title="Opens context menu on element
identified by `locator`.">Open Context Menu</a>
- ·
-<a href="#Page Should Contain" title="Verifies that current page contains
`text`.">Page Should Contain</a>
- ·
-<a href="#Page Should Contain Button" title="Verifies button identified by
`locator` is found from current
page.">Page Should Contain Button</a>
- ·
-<a href="#Page Should Contain Checkbox" title="Verifies checkbox
identified by `locator` is found from current
page.">Page Should Contain Checkbox</a>
- ·
-<a href="#Page Should Contain Element" title="Verifies element identified
by `locator` is found from current
page.">Page Should Contain Element</a>
- ·
-<a href="#Page Should Contain Image" title="Verifies image identified by
`locator` is found from current
page.">Page Should Contain Image</a>
- ·
-<a href="#Page Should Contain Link" title="Verifies link identified by
`locator` is found from current
page.">Page Should Contain Link</a>
- ·
-<a href="#Page Should Contain List" title="Verifies list identified by
`locator` is found from current
page.">Page Should Contain List</a>
- ·
-<a href="#Page Should Contain Radio Button" title="Verifies radio button
identified by `locator` is found from current
page.">Page Should Contain Radio Button</a>
- ·
-<a href="#Page Should Contain Textfield" title="Verifies text field
identified by `locator` is found from current
page.">Page Should Contain Textfield</a>
- ·
-<a href="#Page Should Not Contain" title="Verifies the current page does
not contain `text`.">Page Should Not Contain</a>
- ·
-<a href="#Page Should Not Contain Button" title="Verifies button
identified by `locator` is not found from current
page.">Page Should Not Contain Button</a>
- ·
-<a href="#Page Should Not Contain Checkbox" title="Verifies checkbox
identified by `locator` is not found from current
page.">Page Should Not Contain Checkbox</a>
- ·
-<a href="#Page Should Not Contain Element" title="Verifies element
identified by `locator` is not found from current
page.">Page Should Not Contain Element</a>
- ·
-<a href="#Page Should Not Contain Image" title="Verifies image identified
by `locator` is not found from current
page.">Page Should Not Contain Image</a>
- ·
-<a href="#Page Should Not Contain Link" title="Verifies link identified by
`locator` is not found from current
page.">Page Should Not Contain Link</a>
- ·
-<a href="#Page Should Not Contain List" title="Verifies list identified by
`locator` is not found from current
page.">Page Should Not Contain List</a>
- ·
-<a href="#Page Should Not Contain Radio Button" title="Verifies radio
button identified by `locator` is not found from current
page.">Page Should Not Contain Radio Button</a>
- ·
-<a href="#Page Should Not Contain Textfield" title="Verifies text field
identified by `locator` is not found from current
page.">Page Should Not Contain Textfield</a>
- ·
-<a href="#Press Key" title="Simulates user pressing key on element
identified by `locator`.">Press Key</a>
- ·
-<a href="#Press Key Native" title="Simulates user pressing key by sending
an operating system keystroke.">Press Key Native</a>
- ·
-<a href="#Radio Button Should Be Set To" title="Verifies radio button
group identified by `group_name` has its selection set to
`value`.">Radio Button Should Be Set To</a>
- ·
-<a href="#Radio Button Should Not Be Selected" title="Verifies radio
button group identified by `group_name` has no
selection.">Radio Button Should Not Be Selected</a>
- ·
-<a href="#Register Keyword To Run On Failure" title="Sets the keyword to
execute when a SeleniumLibrary keyword
fails.">Register Keyword To Run On Failure</a>
- ·
-<a href="#Reload Page" title="Simulates user reloading
page.">Reload Page</a>
- ·
-<a href="#Select All From List" title="Selects all values from
multi-select list identified by
`id`.">Select All From List</a>
- ·
-<a href="#Select Checkbox" title="Selects checkbox identified by
`locator`.">Select Checkbox</a>
- ·
-<a href="#Select Flex Application" title="Selects Flex application to work
with and waits until it is active.">Select Flex Application</a>
- ·
-<a href="#Select Frame" title="Sets frame identified by `locator` as
current frame.">Select Frame</a>
- ·
-<a href="#Select From Flex Element" title="Selects `value` from an element
found by `locator`.">Select From Flex Element</a>
- ·
-<a href="#Select From List" title="Selects `*values` from list identified
by `locator`">Select From List</a>
- ·
-<a href="#Select Radio Button" title="Sets selection of radio button group
identified by `group_name` to `value`.">Select Radio Button</a>
- ·
-<a href="#Select Window" title="Selects the window found with `locator` as
the context of actions.">Select Window</a>
- ·
-<a href="#Set Selenium Speed" title="Sets the delay that is waited after
each Selenium command.">Set Selenium Speed</a>
- ·
-<a href="#Set Selenium Timeout" title="Sets the timeout used by various
keywords.">Set Selenium Timeout</a>
- ·
-<a href="#Simulate" title="Simulates `event` on element identified by
`locator`.">Simulate</a>
- ·
-<a href="#Start Selenium Server" title="Starts the Selenium Server
provided with SeleniumLibrary.">Start Selenium Server</a>
- ·
-<a href="#Stop Selenium Server" title="Stops the selenium server (and
closes all browsers).">Stop Selenium Server</a>
- ·
-<a href="#Submit Form" title="Submits a form identified by
`locator`.">Submit Form</a>
- ·
-<a href="#Switch Browser" title="Switches between active browsers using
index or alias.">Switch Browser</a>
- ·
-<a href="#Table Cell Should Contain" title="Verifies that a certain cell
in a table contains
`expected`.">Table Cell Should Contain</a>
- ·
-<a href="#Table Column Should Contain" title="Verifies that a specific
column contains `expected`.">Table Column Should Contain</a>
- ·
-<a href="#Table Footer Should Contain" title="Verifies that the table
footer contains `expected`.">Table Footer Should Contain</a>
- ·
-<a href="#Table Header Should Contain" title="Verifies that the table
header, i.e. any <th>...</th> element, contains
`expected`.">Table Header Should Contain</a>
- ·
-<a href="#Table Row Should Contain" title="Verifies that a specific table
row contains `expected`.">Table Row Should Contain</a>
- ·
-<a href="#Table Should Contain" title="Verifies that `expected` can be
found somewhere in the table.">Table Should Contain</a>
- ·
-<a href="#Textfield Should Contain" title="Verifies text field identified
by `locator` contains text
`expected`.">Textfield Should Contain</a>
- ·
-<a href="#Textfield Value Should Be" title="Verifies the value in text
field identified by `locator` is exactly
`expected`.">Textfield Value Should Be</a>
- ·
-<a href="#Title Should Be" title="Verifies that current page title equals
`title`.">Title Should Be</a>
- ·
-<a href="#Unselect Checkbox" title="Removes selection of checkbox
identified by `locator`.">Unselect Checkbox</a>
- ·
-<a href="#Unselect Frame" title="Sets the top frame as the current
frame.">Unselect Frame</a>
- ·
-<a href="#Unselect From List" title="Unselects given values from list
identified by locator.">Unselect From List</a>
- ·
-<a href="#Wait For Condition" title="Waits until the given `condition` is
true or `timeout` expires.">Wait For Condition</a>
- ·
-<a href="#Wait For Flex Element" title="Waits until an element is found by
`locator` or `timeout` expires.">Wait For Flex Element</a>
- ·
-<a href="#Wait Until Page Contains" title="Waits until `text` appears on
current page.">Wait Until Page Contains</a>
- ·
-<a href="#Wait Until Page Contains Element" title="Waits until element
specified with `locator` appears on current
page.">Wait Until Page Contains Element</a>
- ·
-<a href="#Wait Until Page Loaded" title="Waits for a page load to
happen.">Wait Until Page Loaded</a>
- ·
-<a href="#Xpath Should Match X Times" title="Verifies that the page
contains the given number of elements located by the given
`xpath`.">Xpath Should Match X Times</a>
+
+<div id="javascript_disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your
browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. Firefox
3.5, IE 8, or equivalent is required, newer browsers are recommended.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error
log</b>. Please report the problem if you suspect you have encountered a
bug.</li>
+ </ul>
</div>
-<h2>Keywords</h2>
-<table border="1" class="keywords libdoc">
-<tr>
- <th class="kw">Keyword</th>
- <th class="arg">Arguments</th>
- <th class="doc">Documentation</th>
-</tr>
-<tr>
- <td class="kw"><a name="Add Location Strategy"></a>Add Location
Strategy</td>
- <td class="arg">strategy_name, function_definition</td>
- <td class="doc">Adds a custom location strategy.
-
-<span class="name">strategy_name</span> is the name of the strategy; a
prefix used when addressing an element.
-
-<span class="name">function_definition</span> is the JavaScript that will
be called. It must return a DOM reference, an array with DOM references, or
null.
-
-Together with the modified selenium-server.jar it can provide a new method
of locating elements on the page. For example, a jQuery strategy can be
added to locate elements given jQuery selector syntax.
-
-For jQuery selector setup see: <a
href="
http://code.google.com/p/robotframework-seleniumlibrary/wiki/jQueryElementSelectors">
http://code.google.com/p/robotframework-seleniumlibrary/wiki/jQueryElementSelectors</a>
-
-Example:
-<table border="1" class="doc">
-<tr>
-<td>Add Location Strategy</td>
-<td>jquery</td>
-<td>return Selenium.prototype.locateElementByJQuerySelector(locator,
inDocument, inWindow);</td>
-</tr>
-<tr>
-<td>Page Should Contain Element</td>
-<td>jquery=div.#data-table</td>
-<td></td>
-</tr>
-</table></td>
-</tr>
-<tr>
- <td class="kw"><a name="Alert Should Be Present"></a>Alert Should Be
Present</td>
- <td class="arg">text=</td>
- <td class="doc">Verifies an alert is present and dismisses it.
-
-If <span class="name">text</span> is a non-empty string, then it is also
verified that the message of the alert equals to <span
class="name">text</span>.
-
-Will fail if no alert is present. Note that when running tests with
selenium, the alerts will not be visible in the browser. Nevertheless,
following keywords will fail unless the alert is dismissed by this keyword
or by <a href="#Get Alert Message" class="name">Get Alert Message</a>.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Assign Id To Element"></a>Assign Id To
Element</td>
- <td class="arg">locator, id</td>
- <td class="doc">Assigns a temporary identifier to element specified by
<span class="name">locator</span>.
-
-This is mainly useful if the locator is complicated/slow XPath expression.
Identifier expires when the page is reloaded.
-
-New in SeleniumLibrary 2.7.
-
-Example:
-<table border="1" class="doc">
-<tr>
-<td>Assign ID to Element</td>
-<td>xpath=//div[@id="first_div"]</td>
-<td>my id</td>
-</tr>
-<tr>
-<td>Page Should Contain Element</td>
-<td>my id</td>
-<td></td>
-</tr>
-</table></td>
-</tr>
-<tr>
- <td class="kw"><a name="Call Selenium Api"></a>Call Selenium Api</td>
- <td class="arg">method_name, *args</td>
- <td class="doc">Calls a method in the Selenium remote control API
directly.
-
-This keyword can be used if some functionality provided by Selenium is not
yet exposed as a keyword.
-
-<span class="name">method_name</span> is the name of the method to call in
the Selenium API and <span class="name">args</span> specify the arguments
it expects.
-
-The keyword first tries to find a method in Selenium's Python API provided
by the <span class="name">selenium.py</span> file. If no matching method is
found, the keyword calls the Selenium Server's Remote Controller API
directly via the <span class="name">do_command</span> method in the Python
API [1]. In both cases the keyword returns the return value of the call
directly without any modifications or verifications.
-
-Examples:
-<table border="1" class="doc">
-<tr>
-<td>${ret} =</td>
-<td>Call Selenium API</td>
-<td>is_element_present</td>
-<td># Python API</td>
-</tr>
-<tr>
-<td>Call Selenium API</td>
-<td>double_click</td>
-<td>element_id</td>
-<td># Python API</td>
-</tr>
-<tr>
-<td>Call Selenium API</td>
-<td>doubleClick</td>
-<td>element_id</td>
-<td># RC API</td>
-</tr>
-</table>
-[1] <a
href="
http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/python/">
http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/python/</a></td>
-</tr>
-<tr>
- <td class="kw"><a name="Capture Page Screenshot"></a>Capture Page
Screenshot</td>
- <td class="arg">filename=None, css=background=#CCFFDD</td>
- <td class="doc">Takes a screenshot of the current page and embeds it
into the log.
-
-<span class="name">filename</span> argument specifies the name of the file
to write the screenshot into. It works the same was as with <a
href="#Capture Screenshot" class="name">Capture Screenshot</a>.
-
-<span class="name">css</span> can be used to modify how the screenshot is
taken. By default the bakground color is changed to avoid possible problems
with background leaking when the page layout is somehow broken.
-
-Selenium currently supports this keyword out-of-the-box only with Firefox
browser. To make it work with IE, you can start the Selenium Server with
<span class="name">-singleWindow</span> option and use <span
class="name">*ieproxy</span> as the browser. Additionally, the browser
independent <a href="#Capture Screenshot" class="name">Capture
Screenshot</a> keyword can be used instead.
-
-This keyword was added in SeleniumLibrary 2.3.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Capture Screenshot"></a>Capture Screenshot</td>
- <td class="arg">filename=None</td>
- <td class="doc">Takes a screenshot of the entire screen and embeds it
into the log.
-
-If no <span class="name">filename</span> is given, the screenshot is saved
into file <span class="name">selenium-screenshot-<counter>.png</span>
under the directory where the Robot Framework log file is written into. The
<span class="name">filename</span> is also considered relative to the same
directory, if it is not given in absolute format.
-
-When running on a locked Windows machine, the resulting screenshots will
be all black. A workaround is using the <a href="#Capture Page Screenshot"
class="name">Capture Page Screenshot</a> keyword instead.
-
-There were some changes to this keyword in the 2.3 release:
-- Possibility to take screenshots also when the Selenium Server is running
on a remote machine was added.
-- Support for absolute <span class="name">filename</span> paths was added.
-- Automatic creation of intermediate directories in the path where the
screenshot is saved was removed. <span class="name">OperatingSystem.Create
Directory</span> can be used instead.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Checkbox Should Be Selected"></a>Checkbox Should
Be Selected</td>
- <td class="arg">locator</td>
- <td class="doc">Verifies checkbox identified by <span
class="name">locator</span> is selected/checked.
-
-Key attributes for checkboxes are <span class="name">id</span> and <span
class="name">name</span>. See <a href="#introduction"
class="name">introduction</a> for details about locating elements.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Checkbox Should Not Be Selected"></a>Checkbox
Should Not Be Selected</td>
- <td class="arg">locator</td>
- <td class="doc">Verifies checkbox identified by <span
class="name">locator</span> is not selected/checked.
-
-Key attributes for checkboxes are <span class="name">id</span> and <span
class="name">name</span>. See <a href="#introduction"
class="name">introduction</a> for details about locating elements.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Choose Cancel On Next Confirmation"></a>Choose
Cancel On Next Confirmation</td>
- <td class="arg"></td>
- <td class="doc">Cancel will be selected the next time <a href="#Confirm
Action" class="name">Confirm Action</a> is used.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Choose File"></a>Choose File</td>
- <td class="arg">identifier, file_path</td>
- <td class="doc">Inputs the <span class="name">file_path</span> into file
input field found by <span class="name">identifier</span>.
-
-This keyword is most often used to input files into upload forms. In
normal usage the file specified with <span class="name">file_path</span>
must be available on the same host where the Selenium Server is running.
-
-An alternative usage is specifying the <span class="name">file_path</span>
with an URL (starting with <span class="name">http://</span> or <span
class="name">https://</span>) in which case the file will be downloaded
automatically. The limitations of this method are that it only works on
Firefox and the file must be placed at the root level of a web server.
-
-Example:
-<table border="1" class="doc">
-<tr>
-<td>Choose File</td>
-<td>my_upload_field</td>
-<td>/home/user/files/trades.csv</td>
-</tr>
-<tr>
-<td>Choose File</td>
-<td>my_upload_field</td>
-<td><a
href="
http://uploadhost.com/trades.csv">
http://uploadhost.com/trades.csv</a></td>
-</tr>
-</table>
-The support for remote files was added in SeleniumLibrary 2.3.2. It uses
Selenium's <span class="name">attach_file</span> method which is explained
at <a
href="
http://saucelabs.com/blog/index.php/2009/11/selenium-tip-of-the-week-upload-files-on-browsers-running-over-remote-machines/">
http://saucelabs.com/blog/index.php/2009/11/selenium-tip-of-the-week-upload-files-on-browsers-running-over-remote-machines/</a></td>
-</tr>
-<tr>
- <td class="kw"><a name="Click Button"></a>Click Button</td>
- <td class="arg">locator, dont_wait=</td>
- <td class="doc">Clicks a button identified by <span
class="name">locator</span>.
-
-Key attributes for buttons are <span class="name">id</span>, <span
class="name">name</span> and <span class="name">value</span>. See <a
href="#introduction" class="name">introduction</a> for details about
locating elements and about meaning of <span class="name">dont_wait</span>
argument.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Click Element"></a>Click Element</td>
- <td class="arg">locator, dont_wait=, coordinates=None</td>
- <td class="doc">Click element identified by <span
class="name">locator</span>.
-
-Key attributes for arbitrary elements are <span class="name">id</span> and
<span class="name">name</span>. See <a href="#introduction"
class="name">introduction</a> for details about locating elements and about
meaning of <span class="name">dont_wait</span> argument.
-
-If you want to click the element at certain coordinates, you can specify
the position with <span class="name">coordinates</span> argument in format
<span class="name">x,y</span>. Support for coordinates was added in
SeleniumLibrary 2.7.
-
-Examples:
-<table border="1" class="doc">
-<tr>
-<td>Click Element</td>
-<td>my_id</td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>Click Element</td>
-<td>my_id</td>
-<td>and don't wait</td>
-<td></td>
-</tr>
-<tr>
-<td>Click Element</td>
-<td>my_id</td>
-<td></td>
-<td>100,150</td>
-</tr>
-<tr>
-<td>Click Element</td>
-<td>my_id</td>
-<td>coordinates=100,150</td>
-<td># Use named argument syntax available in RF 2.5 and newer</td>
-</tr>
-</table></td>
-</tr>
-<tr>
- <td class="kw"><a name="Click Flex Element"></a>Click Flex Element</td>
- <td class="arg">locator</td>
- <td class="doc">Clicks an element found by <span
class="name">locator</span>.
-
-See <a href="#introduction" class="name">introduction</a> about rules for
locating Flex elements.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Click Image"></a>Click Image</td>
- <td class="arg">locator, dont_wait=</td>
- <td class="doc">Clicks an image found by <span
class="name">locator</span>.
-
-Key attributes for images are <span class="name">id</span>, <span
class="name">src</span> and <span class="name">alt</span>. See <a
href="#introduction" class="name">introduction</a> for details about
locating elements and about meaning of <span class="name">dont_wait</span>
argument.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Click Link"></a>Click Link</td>
- <td class="arg">locator, dont_wait=</td>
- <td class="doc">Clicks a link identified by locator.
-
-Key attributes for links are <span class="name">id</span>, <span
class="name">name</span>, <span class="name">href</span> and link text. See
<a href="#introduction" class="name">introduction</a> for details about
locating elements and about meaning of <span class="name">dont_wait</span>
argument.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Close All Browsers"></a>Close All Browsers</td>
- <td class="arg"></td>
- <td class="doc">Closes all open browsers and empties the connection
cache.
-
-After this keyword new indexes get from Open Browser keyword are reset to
1.
-
-This keyword should be used in test or suite teardown to make sure all
browsers are closed.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Close Browser"></a>Close Browser</td>
- <td class="arg"></td>
- <td class="doc">Closes the current browser.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Close Window"></a>Close Window</td>
- <td class="arg"></td>
- <td class="doc">Closes currently opened pop-up window.</td>
-</tr>
-<tr>
- <td class="kw"><a name="Confirm Action"></a>Confirm Action</td>
- <td class="arg"></td>
- <td class="doc">Dismisses currently shown confirmation dialog and
returns it's message.
-
-By default, this keyword chooses 'Ok' option from the dialog. If 'cancel'
needs to be chosen, keyword <a href="#Choose Cancel On Next Confirmation"
class="name">Choose Cancel On Next Confirmation</a> must be called before
the action that causes the confirmation dialog to be shown.
-
-Examples:
-
-<table border="1" class="doc">
-<tr>
-<td>Click Button</td>
-<td>Send</td>
-<td># Shows a confirmation dialog</td>
-</tr>
-<tr>
-<td>${message}=</td>
-<td>Confirm Action</td>
-<td># Chooses Ok</td>
-</tr>
***The diff for this file has been truncated for email.***
=======================================
--- /src/SeleniumLibrary/version.py Mon Dec 19 02:38:57 2011
+++ /src/SeleniumLibrary/version.py Tue May 8 02:32:05 2012
@@ -1,1 +1,1 @@
-VERSION = 'devel'
+VERSION = '2.9'
==============================================================================
Revision: 65f7c3170bd0
Author: Pekka Klärck
Date: Tue May 8 02:32:13 2012
Log: Added tag 2.9 for changeset 160e527c967e
http://code.google.com/p/robotframework-seleniumlibrary/source/detail?r=65f7c3170bd0
Modified:
/.hgtags
=======================================
--- /.hgtags Mon Dec 19 01:29:24 2011
+++ /.hgtags Tue May 8 02:32:13 2012
@@ -8,3 +8,4 @@
097f24feb9e287e5dd045bec001ed50e58b077ca 2.7
63d77ee2b05d8d52e94a6f76e1a7657727c84aeb 2.8
d4aa1ebed76f8086c9921a3c8d4a1ab92cfe0c79 2.8.1
+160e527c967e8c1a8b6bbc2b5f4982b48e82a603 2.9