selenium-webdriver 3.1.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.md +112 -0
- package/NOTICE +1 -1
- package/README.md +5 -11
- package/chrome.js +122 -33
- package/edge.js +2 -2
- package/example/async_await_test.js +69 -0
- package/example/chrome_android.js +2 -3
- package/example/chrome_mobile_emulation.js +3 -4
- package/example/firefox_channels.js +3 -3
- package/example/google_search.js +3 -3
- package/example/google_search_generator.js +2 -5
- package/example/google_search_test.js +5 -6
- package/example/headless.js +55 -0
- package/example/logging.js +3 -3
- package/example/parallel_flows.js +4 -7
- package/firefox/binary.js +3 -0
- package/firefox/extension.js +118 -81
- package/firefox/index.js +117 -263
- package/firefox/profile.js +18 -137
- package/ie.js +2 -2
- package/index.js +4 -1
- package/io/index.js +59 -0
- package/io/zip.js +214 -0
- package/lib/atoms/get-attribute.js +9 -0
- package/lib/atoms/is-displayed.js +73 -78
- package/lib/by.js +8 -0
- package/lib/capabilities.js +61 -22
- package/lib/command.js +2 -0
- package/lib/error.js +32 -2
- package/lib/http.js +53 -44
- package/lib/promise.js +72 -25
- package/lib/test/data/click_tests/disabled_element.html +12 -0
- package/lib/test/data/content-editable.html +10 -0
- package/lib/test/data/firefox/webextension.xpi +0 -0
- package/lib/test/data/key_logger.html +34 -0
- package/lib/test/data/nestedElements.html +10 -1
- package/lib/test/data/scrolling_tests/page_with_partially_hidden_element.html +14 -0
- package/lib/test/data/single_text_input.html +12 -0
- package/lib/test/index.js +4 -36
- package/lib/webdriver.js +147 -55
- package/net/portprober.js +1 -1
- package/opera.js +1 -1
- package/package.json +2 -2
- package/phantomjs.js +2 -2
- package/remote/index.js +21 -14
- package/safari.js +2 -2
- package/test/firefox/extension_test.js +41 -17
- package/test/firefox/firefox_test.js +37 -19
- package/test/firefox/profile_test.js +14 -59
- package/test/http/http_test.js +18 -0
- package/test/{io_test.js → io/io_test.js} +40 -1
- package/test/io/zip_test.js +128 -0
- package/test/lib/by_test.js +21 -0
- package/test/lib/error_test.js +21 -1
- package/test/lib/http_test.js +11 -3
- package/test/lib/webdriver_test.js +107 -3
- package/test/page_loading_test.js +0 -6
- package/test/remote_test.js +3 -3
- package/test/session_test.js +68 -23
- package/testing/index.js +2 -3
- package/lib/atoms/getAttribute.js +0 -12
- package/lib/firefox/amd64/libnoblur64.so +0 -0
- package/lib/firefox/i386/libnoblur.so +0 -0
- package/lib/firefox/webdriver.json +0 -69
- package/lib/firefox/webdriver.xpi +0 -0
|
@@ -403,7 +403,7 @@ describe('WebDriver', function() {
|
|
|
403
403
|
|
|
404
404
|
var driver =
|
|
405
405
|
WebDriver.createSession(executor, {'browserName': 'firefox'},
|
|
406
|
-
null,
|
|
406
|
+
null, () => called = true);
|
|
407
407
|
return driver.getSession().then(fail, err => {
|
|
408
408
|
assert.ok(called);
|
|
409
409
|
assertIsStubError(err);
|
|
@@ -464,8 +464,7 @@ describe('WebDriver', function() {
|
|
|
464
464
|
.end();
|
|
465
465
|
|
|
466
466
|
WebDriver.createSession(
|
|
467
|
-
executor, {'browserName': 'firefox'}, null,
|
|
468
|
-
() => {throw e});
|
|
467
|
+
executor, {'browserName': 'firefox'}, null, () => {throw e});
|
|
469
468
|
return waitForAbort().then(err => assert.strictEqual(err, e));
|
|
470
469
|
});
|
|
471
470
|
});
|
|
@@ -1446,6 +1445,7 @@ describe('WebDriver', function() {
|
|
|
1446
1445
|
let executor = new FakeExecutor().
|
|
1447
1446
|
expect(CName.SEND_KEYS_TO_ELEMENT,
|
|
1448
1447
|
{'id': WebElement.buildId('one'),
|
|
1448
|
+
'text': '12abc3',
|
|
1449
1449
|
'value':'12abc3'.split('')}).
|
|
1450
1450
|
andReturnSuccess().
|
|
1451
1451
|
end();
|
|
@@ -1463,6 +1463,7 @@ describe('WebDriver', function() {
|
|
|
1463
1463
|
andReturnSuccess(WebElement.buildId('one')).
|
|
1464
1464
|
expect(CName.SEND_KEYS_TO_ELEMENT,
|
|
1465
1465
|
{'id':WebElement.buildId('one'),
|
|
1466
|
+
'text': 'abc123def',
|
|
1466
1467
|
'value':'abc123def'.split('')}).
|
|
1467
1468
|
andReturnSuccess().
|
|
1468
1469
|
end();
|
|
@@ -1482,6 +1483,7 @@ describe('WebDriver', function() {
|
|
|
1482
1483
|
andReturnSuccess(WebElement.buildId('one')).
|
|
1483
1484
|
expect(CName.SEND_KEYS_TO_ELEMENT,
|
|
1484
1485
|
{'id': WebElement.buildId('one'),
|
|
1486
|
+
'text': 'modified/path',
|
|
1485
1487
|
'value':'modified/path'.split('')}).
|
|
1486
1488
|
andReturnSuccess().
|
|
1487
1489
|
end();
|
|
@@ -1952,6 +1954,108 @@ describe('WebDriver', function() {
|
|
|
1952
1954
|
});
|
|
1953
1955
|
});
|
|
1954
1956
|
|
|
1957
|
+
describe('manage()', function() {
|
|
1958
|
+
describe('setTimeouts()', function() {
|
|
1959
|
+
describe('throws if no timeouts are specified', function() {
|
|
1960
|
+
let driver;
|
|
1961
|
+
before(() => driver = new FakeExecutor().createDriver());
|
|
1962
|
+
|
|
1963
|
+
it('; no arguments', function() {
|
|
1964
|
+
assert.throws(() => driver.manage().setTimeouts(), TypeError);
|
|
1965
|
+
});
|
|
1966
|
+
|
|
1967
|
+
it('; ignores unrecognized timeout keys', function() {
|
|
1968
|
+
assert.throws(
|
|
1969
|
+
() => driver.manage().setTimeouts({foo: 123}), TypeError);
|
|
1970
|
+
});
|
|
1971
|
+
|
|
1972
|
+
it('; ignores positional arguments', function() {
|
|
1973
|
+
assert.throws(
|
|
1974
|
+
() => driver.manage().setTimeouts(1234, 56), TypeError);
|
|
1975
|
+
});
|
|
1976
|
+
});
|
|
1977
|
+
|
|
1978
|
+
describe('throws timeout is not a number, null, or undefined', () => {
|
|
1979
|
+
let driver;
|
|
1980
|
+
before(() => driver = new FakeExecutor().createDriver());
|
|
1981
|
+
|
|
1982
|
+
function checkError(e) {
|
|
1983
|
+
return e instanceof TypeError
|
|
1984
|
+
&& /expected "(script|pageLoad|implicit)" to be a number/.test(
|
|
1985
|
+
e.message);
|
|
1986
|
+
}
|
|
1987
|
+
|
|
1988
|
+
it('script', function() {
|
|
1989
|
+
assert.throws(
|
|
1990
|
+
() => driver.manage().setTimeouts({script: 'abc'}),
|
|
1991
|
+
checkError);
|
|
1992
|
+
});
|
|
1993
|
+
|
|
1994
|
+
it('pageLoad', function() {
|
|
1995
|
+
assert.throws(
|
|
1996
|
+
() => driver.manage().setTimeouts({pageLoad: 'abc'}),
|
|
1997
|
+
checkError);
|
|
1998
|
+
});
|
|
1999
|
+
|
|
2000
|
+
it('implicit', function() {
|
|
2001
|
+
assert.throws(
|
|
2002
|
+
() => driver.manage().setTimeouts({implicit: 'abc'}),
|
|
2003
|
+
checkError);
|
|
2004
|
+
});
|
|
2005
|
+
});
|
|
2006
|
+
|
|
2007
|
+
it('can set multiple timeouts', function() {
|
|
2008
|
+
let executor = new FakeExecutor()
|
|
2009
|
+
.expect(CName.SET_TIMEOUT, {script:1, pageLoad: 2, implicit: 3})
|
|
2010
|
+
.andReturnSuccess()
|
|
2011
|
+
.end();
|
|
2012
|
+
let driver = executor.createDriver();
|
|
2013
|
+
return driver.manage()
|
|
2014
|
+
.setTimeouts({script: 1, pageLoad: 2, implicit: 3});
|
|
2015
|
+
});
|
|
2016
|
+
|
|
2017
|
+
it('falls back to legacy wire format if W3C version fails', () => {
|
|
2018
|
+
let executor = new FakeExecutor()
|
|
2019
|
+
.expect(CName.SET_TIMEOUT, {implicit: 3})
|
|
2020
|
+
.andReturnError(Error('oops'))
|
|
2021
|
+
.expect(CName.SET_TIMEOUT, {type: 'implicit', ms: 3})
|
|
2022
|
+
.andReturnSuccess()
|
|
2023
|
+
.end();
|
|
2024
|
+
let driver = executor.createDriver();
|
|
2025
|
+
return driver.manage().setTimeouts({implicit: 3});
|
|
2026
|
+
});
|
|
2027
|
+
|
|
2028
|
+
describe('deprecated API calls setTimeouts()', function() {
|
|
2029
|
+
it('implicitlyWait()', function() {
|
|
2030
|
+
let executor = new FakeExecutor()
|
|
2031
|
+
.expect(CName.SET_TIMEOUT, {implicit: 3})
|
|
2032
|
+
.andReturnSuccess()
|
|
2033
|
+
.end();
|
|
2034
|
+
let driver = executor.createDriver();
|
|
2035
|
+
return driver.manage().timeouts().implicitlyWait(3);
|
|
2036
|
+
});
|
|
2037
|
+
|
|
2038
|
+
it('setScriptTimeout()', function() {
|
|
2039
|
+
let executor = new FakeExecutor()
|
|
2040
|
+
.expect(CName.SET_TIMEOUT, {script: 3})
|
|
2041
|
+
.andReturnSuccess()
|
|
2042
|
+
.end();
|
|
2043
|
+
let driver = executor.createDriver();
|
|
2044
|
+
return driver.manage().timeouts().setScriptTimeout(3);
|
|
2045
|
+
});
|
|
2046
|
+
|
|
2047
|
+
it('pageLoadTimeout()', function() {
|
|
2048
|
+
let executor = new FakeExecutor()
|
|
2049
|
+
.expect(CName.SET_TIMEOUT, {pageLoad: 3})
|
|
2050
|
+
.andReturnSuccess()
|
|
2051
|
+
.end();
|
|
2052
|
+
let driver = executor.createDriver();
|
|
2053
|
+
return driver.manage().timeouts().pageLoadTimeout(3);
|
|
2054
|
+
});
|
|
2055
|
+
});
|
|
2056
|
+
});
|
|
2057
|
+
});
|
|
2058
|
+
|
|
1955
2059
|
describe('generator support', function() {
|
|
1956
2060
|
var driver;
|
|
1957
2061
|
|
|
@@ -57,12 +57,6 @@ test.suite(function(env) {
|
|
|
57
57
|
return assert(driver.getTitle()).equalTo('We Arrive Here');
|
|
58
58
|
});
|
|
59
59
|
|
|
60
|
-
test.ignore(browsers(Browser.SAFARI)).
|
|
61
|
-
it('should follow meta redirects', function*() {
|
|
62
|
-
yield driver.get(Pages.metaRedirectPage);
|
|
63
|
-
return assert(driver.getTitle()).equalTo('We Arrive Here');
|
|
64
|
-
});
|
|
65
|
-
|
|
66
60
|
// Skip Firefox; see https://bugzilla.mozilla.org/show_bug.cgi?id=1280300
|
|
67
61
|
test.ignore(browsers(Browser.FIREFOX)).
|
|
68
62
|
it('should be able to get a fragment on the current page', function*() {
|
package/test/remote_test.js
CHANGED
|
@@ -83,7 +83,7 @@ describe('FileDetector', function() {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
it('returns the original path if the file does not exist', function() {
|
|
86
|
-
return io.tmpDir(dir => {
|
|
86
|
+
return io.tmpDir().then(dir => {
|
|
87
87
|
let theFile = path.join(dir, 'not-there');
|
|
88
88
|
return (new remote.FileDetector)
|
|
89
89
|
.handleFile(new ExplodingDriver, theFile)
|
|
@@ -92,7 +92,7 @@ describe('FileDetector', function() {
|
|
|
92
92
|
});
|
|
93
93
|
|
|
94
94
|
it('returns the original path if it is a directory', function() {
|
|
95
|
-
return io.tmpDir(dir => {
|
|
95
|
+
return io.tmpDir().then(dir => {
|
|
96
96
|
return (new remote.FileDetector)
|
|
97
97
|
.handleFile(new ExplodingDriver, dir)
|
|
98
98
|
.then(f => assert.equal(f, dir));
|
|
@@ -100,7 +100,7 @@ describe('FileDetector', function() {
|
|
|
100
100
|
});
|
|
101
101
|
|
|
102
102
|
it('attempts to upload valid files', function() {
|
|
103
|
-
return io.tmpFile(theFile => {
|
|
103
|
+
return io.tmpFile().then(theFile => {
|
|
104
104
|
return (new remote.FileDetector)
|
|
105
105
|
.handleFile(
|
|
106
106
|
new (class FakeDriver {
|
package/test/session_test.js
CHANGED
|
@@ -17,38 +17,83 @@
|
|
|
17
17
|
|
|
18
18
|
'use strict';
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
const assert = require('../testing/assert');
|
|
21
|
+
const chrome = require('../chrome');
|
|
22
|
+
const edge = require('../edge');
|
|
23
|
+
const firefox = require('../firefox');
|
|
24
|
+
const ie = require('../ie');
|
|
25
|
+
const opera = require('../opera');
|
|
26
|
+
const phantomjs = require('../phantomjs');
|
|
27
|
+
const safari = require('../safari');
|
|
28
|
+
const test = require('../lib/test');
|
|
29
|
+
const {Browser} = require('../lib/capabilities');
|
|
30
|
+
const {Pages} = require('../lib/test');
|
|
31
|
+
const {WebDriver} = require('..');
|
|
24
32
|
|
|
25
33
|
|
|
26
34
|
test.suite(function(env) {
|
|
27
35
|
var browsers = env.browsers;
|
|
28
36
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
const BROWSER_MAP = new Map([
|
|
38
|
+
[Browser.CHROME, chrome.Driver],
|
|
39
|
+
[Browser.EDGE, edge.Driver],
|
|
40
|
+
[Browser.FIREFOX, firefox.Driver],
|
|
41
|
+
[Browser.INTERNET_EXPLORER, ie.Driver],
|
|
42
|
+
[Browser.OPERA, opera.Driver],
|
|
43
|
+
[Browser.PHANTOM_JS, phantomjs.Driver],
|
|
44
|
+
[Browser.SAFARI, safari.Driver],
|
|
45
|
+
]);
|
|
33
46
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
47
|
+
if (BROWSER_MAP.has(env.currentBrowser())) {
|
|
48
|
+
describe('builder creates thenable driver instances', function() {
|
|
49
|
+
let driver;
|
|
50
|
+
|
|
51
|
+
after(() => driver && driver.quit());
|
|
52
|
+
|
|
53
|
+
it(env.currentBrowser(), function() {
|
|
54
|
+
driver = env.builder().build();
|
|
55
|
+
|
|
56
|
+
const want = BROWSER_MAP.get(env.currentBrowser());
|
|
57
|
+
assert(driver).instanceOf(want,
|
|
58
|
+
`want ${want.name}, but got ${driver.name}`);
|
|
59
|
+
assert(typeof driver.then).equalTo('function');
|
|
60
|
+
|
|
61
|
+
return driver
|
|
62
|
+
.then(
|
|
63
|
+
d => assert(d)
|
|
64
|
+
.instanceOf(want, `want ${want.name}, but got ${d.name}`))
|
|
65
|
+
// Load something so the safari driver doesn't crash from starting and
|
|
66
|
+
// stopping in short time.
|
|
67
|
+
.then(() => driver.get(Pages.echoPage));
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
describe('session management', function() {
|
|
73
|
+
var driver;
|
|
74
|
+
test.before(function*() {
|
|
75
|
+
driver = yield env.builder().build();
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
test.after(function() {
|
|
79
|
+
return driver.quit();
|
|
80
|
+
});
|
|
37
81
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
82
|
+
test.it('can connect to an existing session', function*() {
|
|
83
|
+
yield driver.get(Pages.simpleTestPage);
|
|
84
|
+
yield assert(driver.getTitle()).equalTo('Hello WebDriver');
|
|
41
85
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
86
|
+
return driver.getSession().then(session1 => {
|
|
87
|
+
let driver2 = WebDriver.attachToSession(
|
|
88
|
+
driver.getExecutor(),
|
|
89
|
+
session1.getId());
|
|
46
90
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
91
|
+
return assert(driver2.getTitle()).equalTo('Hello WebDriver')
|
|
92
|
+
.then(_ => {
|
|
93
|
+
let session2Id = driver2.getSession().then(s => s.getId());
|
|
94
|
+
return assert(session2Id).equalTo(session1.getId());
|
|
95
|
+
});
|
|
96
|
+
});
|
|
52
97
|
});
|
|
53
98
|
});
|
|
54
99
|
});
|
package/testing/index.js
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* The provided wrappers leverage the {@link webdriver.promise.ControlFlow}
|
|
42
42
|
* to simplify writing asynchronous tests:
|
|
43
43
|
*
|
|
44
|
-
* var {Builder, By, until} = require('selenium-webdriver');
|
|
44
|
+
* var {Builder, By, Key, until} = require('selenium-webdriver');
|
|
45
45
|
* var test = require('selenium-webdriver/testing');
|
|
46
46
|
*
|
|
47
47
|
* test.describe('Google Search', function() {
|
|
@@ -57,8 +57,7 @@
|
|
|
57
57
|
*
|
|
58
58
|
* test.it('should append query to title', function() {
|
|
59
59
|
* driver.get('http://www.google.com/ncr');
|
|
60
|
-
* driver.findElement(By.name('q')).sendKeys('webdriver');
|
|
61
|
-
* driver.findElement(By.name('btnG')).click();
|
|
60
|
+
* driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
|
|
62
61
|
* driver.wait(until.titleIs('webdriver - Google Search'), 1000);
|
|
63
62
|
* });
|
|
64
63
|
* });
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// GENERATED CODE - DO NOT EDIT
|
|
2
|
-
module.exports = function(){return function(){var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,c,b){if(b.get||b.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[c]=b.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;
|
|
3
|
-
function e(a,c){if(c){for(var b=ba,d=a.split("."),f=0;f<d.length-1;f++){var h=d[f];h in b||(b[h]={});b=b[h]}d=d[d.length-1];f=b[d];h=c(f);h!=f&&null!=h&&aa(b,d,{configurable:!0,writable:!0,value:h})}}
|
|
4
|
-
e("String.prototype.repeat",function(a){return a?a:function(a){var b;if(null==this)throw new TypeError("The 'this' value for String.prototype.repeat must not be null or undefined");b=this+"";if(0>a||1342177279<a)throw new RangeError("Invalid count value");a|=0;for(var d="";a;)if(a&1&&(d+=b),a>>>=1)b+=b;return d}});e("Math.sign",function(a){return a?a:function(a){a=Number(a);return!a||isNaN(a)?a:0<a?1:-1}});var g=this;function l(a){return"string"==typeof a};function m(a,c){this.a=n[a]||p;this.message=c||"";var b=this.a.replace(/((?:^|\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\s\xa0]+/g,"")}),d=b.length-5;if(0>d||b.indexOf("Error",d)!=d)b+="Error";this.name=b;b=Error(this.message);b.name=this.name;this.stack=b.stack||""}
|
|
5
|
-
(function(){var a=Error;function c(){}c.prototype=a.prototype;m.b=a.prototype;m.prototype=new c;m.prototype.constructor=m;m.a=function(b,c,f){for(var h=Array(arguments.length-2),k=2;k<arguments.length;k++)h[k-2]=arguments[k];return a.prototype[c].apply(b,h)}})();var p="unknown error",n={15:"element not selectable",11:"element not visible"};n[31]=p;n[30]=p;n[24]="invalid cookie domain";n[29]="invalid element coordinates";n[12]="invalid element state";n[32]="invalid selector";n[51]="invalid selector";
|
|
6
|
-
n[52]="invalid selector";n[17]="javascript error";n[405]="unsupported operation";n[34]="move target out of bounds";n[27]="no such alert";n[7]="no such element";n[8]="no such frame";n[23]="no such window";n[28]="script timeout";n[33]="session not created";n[10]="stale element reference";n[21]="timeout";n[25]="unable to set cookie";n[26]="unexpected alert open";n[13]=p;n[9]="unknown command";m.prototype.toString=function(){return this.name+": "+this.message};var q=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};
|
|
7
|
-
function r(a,c){for(var b=0,d=q(String(a)).split("."),f=q(String(c)).split("."),h=Math.max(d.length,f.length),k=0;!b&&k<h;k++){var S=d[k]||"",ja=f[k]||"",ka=RegExp("(\\d*)(\\D*)","g"),la=RegExp("(\\d*)(\\D*)","g");do{var t=ka.exec(S)||["","",""],u=la.exec(ja)||["","",""];if(0==t[0].length&&0==u[0].length)break;b=v(0==t[1].length?0:parseInt(t[1],10),0==u[1].length?0:parseInt(u[1],10))||v(0==t[2].length,0==u[2].length)||v(t[2],u[2])}while(!b)}return b}function v(a,c){return a<c?-1:a>c?1:0};var w;a:{var x=g.navigator;if(x){var y=x.userAgent;if(y){w=y;break a}}w=""}function z(a){return-1!=w.indexOf(a)};function ca(a,c){for(var b=a.length,d=l(a)?a.split(""):a,f=0;f<b;f++)f in d&&c.call(void 0,d[f],f,a)};function A(){return z("iPhone")&&!z("iPod")&&!z("iPad")};function B(){return z("Opera")||z("OPR")}function C(){return(z("Chrome")||z("CriOS"))&&!B()&&!z("Edge")};var D=B(),E=z("Trident")||z("MSIE"),F=z("Edge"),G=z("Gecko")&&!(-1!=w.toLowerCase().indexOf("webkit")&&!z("Edge"))&&!(z("Trident")||z("MSIE"))&&!z("Edge"),da=-1!=w.toLowerCase().indexOf("webkit")&&!z("Edge");function ea(){var a=w;if(G)return/rv\:([^\);]+)(\)|;)/.exec(a);if(F)return/Edge\/([\d\.]+)/.exec(a);if(E)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(da)return/WebKit\/(\S+)/.exec(a)}function H(){var a=g.document;return a?a.documentMode:void 0}
|
|
8
|
-
var I=function(){if(D&&g.opera){var a;var c=g.opera.version;try{a=c()}catch(b){a=c}return a}a="";(c=ea())&&(a=c?c[1]:"");return E&&(c=H(),null!=c&&c>parseFloat(a))?String(c):a}(),J={},K=g.document,L=K&&E?H()||("CSS1Compat"==K.compatMode?parseInt(I,10):5):void 0;!G&&!E||E&&9<=Number(L)||G&&(J["1.9.1"]||(J["1.9.1"]=0<=r(I,"1.9.1")));E&&(J["9"]||(J["9"]=0<=r(I,"9")));var fa=z("Firefox"),ga=A()||z("iPod"),ha=z("iPad"),M=z("Android")&&!(C()||z("Firefox")||B()||z("Silk")),ia=C(),N=z("Safari")&&!(C()||z("Coast")||B()||z("Edge")||z("Silk")||z("Android"))&&!(A()||z("iPad")||z("iPod"));var ma={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},na={IMG:" ",BR:"\n"};function oa(a,c,b){if(!(a.nodeName in ma))if(3==a.nodeType)b?c.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(a.nodeValue);else if(a.nodeName in na)c.push(na[a.nodeName]);else for(a=a.firstChild;a;)oa(a,c,b),a=a.nextSibling};function O(a){return(a=a.exec(w))?a[1]:""}var pa=function(){if(fa)return O(/Firefox\/([0-9.]+)/);if(E||F||D)return I;if(ia)return O(/Chrome\/([0-9.]+)/);if(N&&!(A()||z("iPad")||z("iPod")))return O(/Version\/([0-9.]+)/);if(ga||ha){var a=/Version\/(\S+).*Mobile\/(\S+)/.exec(w);if(a)return a[1]+"."+a[2]}else if(M)return(a=O(/Android\s+([0-9.]+)/))?a:O(/Version\/([0-9.]+)/);return""}();var qa;function P(a){ra?qa(a):M?r(sa,a):r(pa,a)}var ra=function(){if(!G)return!1;var a=g.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(f){return!1}var c=a.classes,a=a.interfaces,b=c["@mozilla.org/xpcom/version-comparator;1"].getService(a.nsIVersionComparator),d=c["@mozilla.org/xre/app-info;1"].getService(a.nsIXULAppInfo).version;qa=function(a){b.compare(d,""+a)};return!0}(),Q;if(M){var ta=/Android\s+([0-9\.]+)/.exec(w);Q=ta?ta[1]:"0"}else Q="0";
|
|
9
|
-
var sa=Q,ua=E&&!(8<=Number(L)),va=E&&!(9<=Number(L));M&&P(2.3);M&&P(4);N&&P(6);function R(a,c){c=c.toLowerCase();if("style"==c)return wa(a.style.cssText);if(ua&&"value"==c&&T(a,"INPUT"))return a.value;if(va&&!0===a[c])return String(a.getAttribute(c));var b=a.getAttributeNode(c);return b&&b.specified?b.value:null}var xa=/[;]+(?=(?:(?:[^"]*"){2})*[^"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\([^()]*\))*[^()]*$)/;
|
|
10
|
-
function wa(a){var c=[];ca(a.split(xa),function(a){var d=a.indexOf(":");0<d&&(a=[a.slice(0,d),a.slice(d+1)],2==a.length&&c.push(a[0].toLowerCase(),":",a[1],";"))});c=c.join("");return c=";"==c.charAt(c.length-1)?c:c+";"}function U(a,c){var b;ua&&"value"==c&&T(a,"OPTION")&&null===R(a,"value")?(b=[],oa(a,b,!1),b=b.join("")):b=a[c];return b}function T(a,c){return!!a&&1==a.nodeType&&(!c||a.tagName.toUpperCase()==c)}
|
|
11
|
-
function ya(a){return T(a,"OPTION")?!0:T(a,"INPUT")?(a=a.type.toLowerCase(),"checkbox"==a||"radio"==a):!1};var za={"class":"className",readonly:"readOnly"},V="async autofocus autoplay checked compact complete controls declare defaultchecked defaultselected defer disabled draggable ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref noresize noshade novalidate nowrap open paused pubdate readonly required reversed scoped seamless seeking selected spellcheck truespeed willvalidate".split(" ");function Aa(a,c){var b=null,d=c.toLowerCase();if("style"==d)return(b=a.style)&&!l(b)&&(b=b.cssText),b;if(("selected"==d||"checked"==d)&&ya(a)){if(!ya(a))throw new m(15,"Element is not selectable");var b="selected",f=a.type&&a.type.toLowerCase();if("checkbox"==f||"radio"==f)b="checked";return U(a,b)?"true":null}var h=T(a,"A");if(T(a,"IMG")&&"src"==d||h&&"href"==d)return(b=R(a,d))&&(b=U(a,d)),b;if("spellcheck"==d){b=R(a,d);if(null!==b){if("false"==b.toLowerCase())return"false";if("true"==b.toLowerCase())return"true"}return U(a,
|
|
12
|
-
d)+""}h=za[c]||c;a:if(l(V))d=l(d)&&1==d.length?V.indexOf(d,0):-1;else{for(var k=0;k<V.length;k++)if(k in V&&V[k]===d){d=k;break a}d=-1}if(0<=d)return(b=null!==R(a,c)||U(a,h))?"true":null;try{f=U(a,h)}catch(S){}(d=null==f)||(d=typeof f,d="object"==d&&null!=f||"function"==d);d?b=R(a,c):b=f;return null!=b?b.toString():null}var W=["_"],X=g;W[0]in X||!X.execScript||X.execScript("var "+W[0]);for(var Y;W.length&&(Y=W.shift());){var Z;if(Z=!W.length)Z=void 0!==Aa;Z?X[Y]=Aa:X[Y]?X=X[Y]:X=X[Y]={}};; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"frozen": {
|
|
3
|
-
"app.update.auto": false,
|
|
4
|
-
"app.update.enabled": false,
|
|
5
|
-
"browser.displayedE10SNotice": 4,
|
|
6
|
-
"browser.download.manager.showWhenStarting": false,
|
|
7
|
-
"browser.EULA.override": true,
|
|
8
|
-
"browser.EULA.3.accepted": true,
|
|
9
|
-
"browser.link.open_external": 2,
|
|
10
|
-
"browser.link.open_newwindow": 2,
|
|
11
|
-
"browser.offline": false,
|
|
12
|
-
"browser.reader.detectedFirstArticle": true,
|
|
13
|
-
"browser.safebrowsing.enabled": false,
|
|
14
|
-
"browser.safebrowsing.malware.enabled": false,
|
|
15
|
-
"browser.search.update": false,
|
|
16
|
-
"browser.selfsupport.url" : "",
|
|
17
|
-
"browser.sessionstore.resume_from_crash": false,
|
|
18
|
-
"browser.shell.checkDefaultBrowser": false,
|
|
19
|
-
"browser.tabs.warnOnClose": false,
|
|
20
|
-
"browser.tabs.warnOnOpen": false,
|
|
21
|
-
"datareporting.healthreport.service.enabled": false,
|
|
22
|
-
"datareporting.healthreport.uploadEnabled": false,
|
|
23
|
-
"datareporting.healthreport.service.firstRun": false,
|
|
24
|
-
"datareporting.healthreport.logging.consoleEnabled": false,
|
|
25
|
-
"datareporting.policy.dataSubmissionEnabled": false,
|
|
26
|
-
"datareporting.policy.dataSubmissionPolicyAccepted": false,
|
|
27
|
-
"devtools.errorconsole.enabled": true,
|
|
28
|
-
"dom.disable_open_during_load": false,
|
|
29
|
-
"extensions.autoDisableScopes": 10,
|
|
30
|
-
"extensions.blocklist.enabled": false,
|
|
31
|
-
"extensions.checkCompatibility.nightly": false,
|
|
32
|
-
"extensions.logging.enabled": true,
|
|
33
|
-
"extensions.update.enabled": false,
|
|
34
|
-
"extensions.update.notifyUser": false,
|
|
35
|
-
"javascript.enabled": true,
|
|
36
|
-
"network.manage-offline-status": false,
|
|
37
|
-
"network.http.phishy-userpass-length": 255,
|
|
38
|
-
"offline-apps.allow_by_default": true,
|
|
39
|
-
"prompts.tab_modal.enabled": false,
|
|
40
|
-
"security.csp.enable": false,
|
|
41
|
-
"security.fileuri.origin_policy": 3,
|
|
42
|
-
"security.fileuri.strict_origin_policy": false,
|
|
43
|
-
"signon.rememberSignons": false,
|
|
44
|
-
"toolkit.networkmanager.disable": true,
|
|
45
|
-
"toolkit.telemetry.prompted": 2,
|
|
46
|
-
"toolkit.telemetry.enabled": false,
|
|
47
|
-
"toolkit.telemetry.rejected": true,
|
|
48
|
-
"xpinstall.signatures.required": false,
|
|
49
|
-
"xpinstall.whitelist.required": false
|
|
50
|
-
},
|
|
51
|
-
"mutable": {
|
|
52
|
-
"browser.dom.window.dump.enabled": true,
|
|
53
|
-
"browser.laterrun.enabled": false,
|
|
54
|
-
"browser.newtab.url": "about:blank",
|
|
55
|
-
"browser.newtabpage.enabled": false,
|
|
56
|
-
"browser.startup.page": 0,
|
|
57
|
-
"browser.startup.homepage": "about:blank",
|
|
58
|
-
"browser.startup.homepage_override.mstone": "ignore",
|
|
59
|
-
"browser.usedOnWindows10.introURL": "about:blank",
|
|
60
|
-
"dom.max_chrome_script_run_time": 30,
|
|
61
|
-
"dom.max_script_run_time": 30,
|
|
62
|
-
"dom.report_all_js_exceptions": true,
|
|
63
|
-
"javascript.options.showInConsole": true,
|
|
64
|
-
"startup.homepage_welcome_url": "about:blank",
|
|
65
|
-
"startup.homepage_welcome_url.additional": "about:blank",
|
|
66
|
-
"webdriver_accept_untrusted_certs": true,
|
|
67
|
-
"webdriver_assume_untrusted_issuer": true
|
|
68
|
-
}
|
|
69
|
-
}
|
|
Binary file
|