Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -733,6 +733,25 @@ namespace :rb do
Bazel.execute('build', args, '//rb:selenium-devtools') if devtools || !webdriver
end

task :atoms do
base_dir = 'rb/lib/selenium/webdriver/atoms'
mkdir_p base_dir

{
'//javascript/atoms/fragments:find-elements': 'findElements.js',
'//javascript/atoms/fragments:is-displayed': 'isDisplayed.js',
'//javascript/webdriver/atoms:get-attribute': 'getAttribute.js'
}.each do |target, name|
puts "Generating #{target} as #{name}"

atom = Bazel.execute('build', [], target.to_s)

File.open(File.join(base_dir, name), 'w') do |f|
f << File.read(atom).strip
end
end
end

desc 'Update generated Ruby files for local development'
task :local_dev do
Bazel.execute('build', [], '@bundle//:bundle')
Expand Down
1 change: 0 additions & 1 deletion javascript/atoms/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,6 @@ closure_js_library(
":errors",
":json",
":useragent",
"//third_party/js/wgxpath",
"@io_bazel_rules_closure//closure/library/array",
"@io_bazel_rules_closure//closure/library/dom",
"@io_bazel_rules_closure//closure/library/dom:nodetype",
Expand Down
3 changes: 1 addition & 2 deletions javascript/atoms/domcore.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@
/**
* @fileoverview Defines the core DOM querying library for the atoms, with a
* minimal set of dependencies. Notably, this file should never have a
* dependency on CSS or XPath polyfill libraries (sizzle and wgxpath,
* respectively).
* dependency on CSS libraries such as sizzle.
*/

goog.provide('bot.dom.core');
Expand Down
7 changes: 0 additions & 7 deletions javascript/atoms/locators/xpath.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ goog.require('goog.dom');
goog.require('goog.dom.NodeType');
goog.require('goog.userAgent');
goog.require('goog.userAgent.product');
goog.require('wgxpath');

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

// Let the wgxpath library be compiled away unless we are on IE or Android.
// TODO: Restrict this to just IE when we drop support for Froyo.
if (goog.userAgent.IE || goog.userAgent.product.ANDROID) {
wgxpath.install(goog.dom.getWindow(doc));
}

try {
var resolver = doc.createNSResolver ?
doc.createNSResolver(doc.documentElement) :
Expand Down
25 changes: 0 additions & 25 deletions javascript/atoms/test/deps.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,32 +20,7 @@

const dirAtoms = '../../../javascript/atoms/'
const dirLocators = dirAtoms + 'locators/'
const dirWgxpath = '../../../third_party/js/wgxpath/'

goog.addDependency(dirWgxpath + 'wgxpath.js', ['wgxpath'], []);
goog.addDependency(dirWgxpath + 'context.js', ['wgxpath.Context'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'ieAttrWrapper.js', ['wgxpath.IEAttrWrapper'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'lexer.js', ['wgxpath.Lexer'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'userAgent.js', ['wgxpath.userAgent'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'nodeset.js', ['wgxpath.NodeSet'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'node.js', ['wgxpath.Node'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'parser.js', ['wgxpath.Parser'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'nsResolver.js', ['wgxpath.nsResolver'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'dataType.js', ['wgxpath.DataType'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'expr.js', ['wgxpath.Expr'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'binaryExpr.js', ['wgxpath.BinaryExpr'], ['wgxpath', 'wgxpath.Expr', 'wgxpath.DataType']);
goog.addDependency(dirWgxpath + 'filterExpr.js', ['wgxpath.FilterExpr'], ['wgxpath', 'wgxpath.Expr']);
goog.addDependency(dirWgxpath + 'pathExpr.js', ['wgxpath.PathExpr'], ['wgxpath', 'wgxpath.Expr']);
goog.addDependency(dirWgxpath + 'unaryExpr.js', ['wgxpath.UnaryExpr'], ['wgxpath', 'wgxpath.Expr']);
goog.addDependency(dirWgxpath + 'unionExpr.js', ['wgxpath.UnionExpr'], ['wgxpath', 'wgxpath.Expr']);
goog.addDependency(dirWgxpath + 'step.js', ['wgxpath.Step'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'literal.js', ['wgxpath.Literal'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'predicates.js', ['wgxpath.Predicates'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'number.js', ['wgxpath.Number'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'functionCall.js', ['wgxpath.FunctionCall'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'kindTest.js', ['wgxpath.KindTest'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'nodeTest.js', ['wgxpath.NodeTest'], ['wgxpath']);
goog.addDependency(dirWgxpath + 'nameTest.js', ['wgxpath.NameTest'], ['wgxpath']);
goog.addDependency(dirAtoms + 'bot.js', ['bot'], []);
goog.addDependency(dirAtoms + 'userAgent.js', ['bot.userAgent'], ['goog.userAgent', 'goog.userAgent.product']);
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']);
Expand Down
171 changes: 50 additions & 121 deletions rb/lib/selenium/webdriver/atoms/findElements.js

Large diffs are not rendered by default.

Loading
Loading