Skip to content

Commit 3054072

Browse files
committed
Remove the wgxpath library
We needed to include this to support IE as it didn't have an underlying XPath implementation available to JS scripts to use. The `IEDriverServer` hasn't been recompiled for a while now, and no other driver needs to have an xpath shim. Removing it should be a no-op.
1 parent 4d413c6 commit 3054072

38 files changed

+101
-5367
lines changed

Rakefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,26 @@ namespace :rb do
733733
Bazel.execute('build', args, '//rb:selenium-devtools') if devtools || !webdriver
734734
end
735735

736+
task :atoms do
737+
base_dir = 'rb/lib/selenium/webdriver/atoms'
738+
mkdir_p base_dir
739+
740+
{
741+
'//javascript/atoms/fragments:find-elements': 'findElements.js',
742+
'//javascript/atoms/fragments:is-displayed': 'isDisplayed.js',
743+
'//javascript/webdriver/atoms:get-attribute': 'getAttribute.js',
744+
}.each do |target, name|
745+
puts "Generating #{target} as #{name}"
746+
747+
atom = Bazel.execute('build', [], target.to_s)
748+
749+
File.open(File.join(base_dir, name), 'w') do |f|
750+
f << File.read(atom).strip
751+
end
752+
end
753+
end
754+
755+
736756
desc 'Update generated Ruby files for local development'
737757
task :local_dev do
738758
Bazel.execute('build', [], '@bundle//:bundle')

javascript/atoms/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,6 @@ closure_js_library(
290290
":errors",
291291
":json",
292292
":useragent",
293-
"//third_party/js/wgxpath",
294293
"@io_bazel_rules_closure//closure/library/array",
295294
"@io_bazel_rules_closure//closure/library/dom",
296295
"@io_bazel_rules_closure//closure/library/dom:nodetype",

javascript/atoms/domcore.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
/**
1919
* @fileoverview Defines the core DOM querying library for the atoms, with a
2020
* minimal set of dependencies. Notably, this file should never have a
21-
* dependency on CSS or XPath polyfill libraries (sizzle and wgxpath,
22-
* respectively).
21+
* dependency on CSS libraries such as sizzle.
2322
*/
2423

2524
goog.provide('bot.dom.core');

javascript/atoms/locators/xpath.js

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ goog.require('goog.dom');
4141
goog.require('goog.dom.NodeType');
4242
goog.require('goog.userAgent');
4343
goog.require('goog.userAgent.product');
44-
goog.require('wgxpath');
4544

4645
/**
4746
* XPathResult enum values. These are defined separately since
@@ -95,12 +94,6 @@ bot.locators.xpath.evaluate_ = function (node, path, resultType) {
9594
return null;
9695
}
9796

98-
// Let the wgxpath library be compiled away unless we are on IE or Android.
99-
// TODO: Restrict this to just IE when we drop support for Froyo.
100-
if (goog.userAgent.IE || goog.userAgent.product.ANDROID) {
101-
wgxpath.install(goog.dom.getWindow(doc));
102-
}
103-
10497
try {
10598
var resolver = doc.createNSResolver ?
10699
doc.createNSResolver(doc.documentElement) :

javascript/atoms/test/deps.js

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,32 +20,7 @@
2020

2121
const dirAtoms = '../../../javascript/atoms/'
2222
const dirLocators = dirAtoms + 'locators/'
23-
const dirWgxpath = '../../../third_party/js/wgxpath/'
2423

25-
goog.addDependency(dirWgxpath + 'wgxpath.js', ['wgxpath'], []);
26-
goog.addDependency(dirWgxpath + 'context.js', ['wgxpath.Context'], ['wgxpath']);
27-
goog.addDependency(dirWgxpath + 'ieAttrWrapper.js', ['wgxpath.IEAttrWrapper'], ['wgxpath']);
28-
goog.addDependency(dirWgxpath + 'lexer.js', ['wgxpath.Lexer'], ['wgxpath']);
29-
goog.addDependency(dirWgxpath + 'userAgent.js', ['wgxpath.userAgent'], ['wgxpath']);
30-
goog.addDependency(dirWgxpath + 'nodeset.js', ['wgxpath.NodeSet'], ['wgxpath']);
31-
goog.addDependency(dirWgxpath + 'node.js', ['wgxpath.Node'], ['wgxpath']);
32-
goog.addDependency(dirWgxpath + 'parser.js', ['wgxpath.Parser'], ['wgxpath']);
33-
goog.addDependency(dirWgxpath + 'nsResolver.js', ['wgxpath.nsResolver'], ['wgxpath']);
34-
goog.addDependency(dirWgxpath + 'dataType.js', ['wgxpath.DataType'], ['wgxpath']);
35-
goog.addDependency(dirWgxpath + 'expr.js', ['wgxpath.Expr'], ['wgxpath']);
36-
goog.addDependency(dirWgxpath + 'binaryExpr.js', ['wgxpath.BinaryExpr'], ['wgxpath', 'wgxpath.Expr', 'wgxpath.DataType']);
37-
goog.addDependency(dirWgxpath + 'filterExpr.js', ['wgxpath.FilterExpr'], ['wgxpath', 'wgxpath.Expr']);
38-
goog.addDependency(dirWgxpath + 'pathExpr.js', ['wgxpath.PathExpr'], ['wgxpath', 'wgxpath.Expr']);
39-
goog.addDependency(dirWgxpath + 'unaryExpr.js', ['wgxpath.UnaryExpr'], ['wgxpath', 'wgxpath.Expr']);
40-
goog.addDependency(dirWgxpath + 'unionExpr.js', ['wgxpath.UnionExpr'], ['wgxpath', 'wgxpath.Expr']);
41-
goog.addDependency(dirWgxpath + 'step.js', ['wgxpath.Step'], ['wgxpath']);
42-
goog.addDependency(dirWgxpath + 'literal.js', ['wgxpath.Literal'], ['wgxpath']);
43-
goog.addDependency(dirWgxpath + 'predicates.js', ['wgxpath.Predicates'], ['wgxpath']);
44-
goog.addDependency(dirWgxpath + 'number.js', ['wgxpath.Number'], ['wgxpath']);
45-
goog.addDependency(dirWgxpath + 'functionCall.js', ['wgxpath.FunctionCall'], ['wgxpath']);
46-
goog.addDependency(dirWgxpath + 'kindTest.js', ['wgxpath.KindTest'], ['wgxpath']);
47-
goog.addDependency(dirWgxpath + 'nodeTest.js', ['wgxpath.NodeTest'], ['wgxpath']);
48-
goog.addDependency(dirWgxpath + 'nameTest.js', ['wgxpath.NameTest'], ['wgxpath']);
4924
goog.addDependency(dirAtoms + 'bot.js', ['bot'], []);
5025
goog.addDependency(dirAtoms + 'userAgent.js', ['bot.userAgent'], ['goog.userAgent', 'goog.userAgent.product']);
5126
goog.addDependency(dirAtoms + 'action.js', ['bot.action'], ['bot.Error', 'bot.ErrorCode', 'bot.dom', 'bot.events', 'goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.events.EventType', 'goog.userAgent', 'goog.Uri']);

rb/lib/selenium/webdriver/atoms/findElements.js

Lines changed: 50 additions & 121 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)