Skip to content

Commit 06fdf29

Browse files
[js] Package up mutation-listener for node. Fixes #8955
1 parent e8d0e07 commit 06fdf29

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

javascript/node/selenium-webdriver/BUILD.bazel

+3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ pkg_npm(
3232
"//javascript/node/selenium-webdriver/lib/atoms:find-elements",
3333
"//javascript/node/selenium-webdriver/lib/atoms:get_attribute",
3434
"//javascript/node/selenium-webdriver/lib/atoms:is_displayed",
35+
"//javascript/node/selenium-webdriver/lib/atoms:mutation-listener"
3536
],
3637
)
3738

@@ -58,6 +59,7 @@ nodejs_binary(
5859
"//javascript/node/selenium-webdriver/lib/atoms:get_attribute",
5960
"//javascript/node/selenium-webdriver/lib/atoms:is_displayed",
6061
"//javascript/node/selenium-webdriver/lib/atoms:find-elements",
62+
"//javascript/node/selenium-webdriver/lib/atoms:mutation-listener"
6163
],
6264
entry_point = "lib/test/fileserver.ts",
6365
)
@@ -83,6 +85,7 @@ jasmine_node_test(
8385
"//javascript/node/selenium-webdriver/lib/atoms:find-elements",
8486
"//javascript/node/selenium-webdriver/lib/atoms:get_attribute",
8587
"//javascript/node/selenium-webdriver/lib/atoms:is_displayed",
88+
"//javascript/node/selenium-webdriver/lib/atoms:mutation-listener",
8689
"@npm//jasmine",
8790
],
8891
)

javascript/node/selenium-webdriver/chromium.js

+13-5
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ class Options extends Capabilities {
569569
return extension.toString('base64')
570570
}
571571
return io
572-
.read(/** @type {string} */ (extension))
572+
.read(/** @type {string} */(extension))
573573
.then((buffer) => buffer.toString('base64'))
574574
})
575575
}
@@ -622,7 +622,7 @@ class Driver extends webdriver.WebDriver {
622622
* implementation.
623623
* @override
624624
*/
625-
setFileDetector() {}
625+
setFileDetector() { }
626626

627627
/**
628628
* Schedules a command to launch Chrome App with given ID.
@@ -791,7 +791,8 @@ class Driver extends webdriver.WebDriver {
791791
response: 'ProvideCredentials',
792792
username: username,
793793
password: password,
794-
}})
794+
}
795+
})
795796
} else if (params.method === 'Fetch.requestPaused') {
796797
const requestPausedParams = params['params']
797798
connection.execute('Fetch.continueRequest', this.getRandomNumber(1, 10), {
@@ -885,7 +886,14 @@ class Driver extends webdriver.WebDriver {
885886
name: '__webdriver_attribute',
886887
}, null)
887888

888-
const mutationListener = fs.readFileSync('../../cdp-support/mutation-listener.js', 'utf-8').toString()
889+
const mutationListener
890+
try {
891+
// Depending on what is running the code it could appear in 2 different places which is why we try
892+
// here and then the other location
893+
mutationListener = fs.readFileSync('./javascript/node/selenium-webdriver/lib/atoms/mutation-listener.js', 'utf-8').toString()
894+
} catch {
895+
mutationListener = fs.readFileSync('./lib/atoms/mutation-listener.js', 'utf-8').toString()
896+
}
889897

890898
this.executeScript(mutationListener)
891899

@@ -897,7 +905,7 @@ class Driver extends webdriver.WebDriver {
897905
const params = JSON.parse(message)
898906
if (params.method === 'Runtime.bindingCalled') {
899907
let payload = JSON.parse(params['params']['payload'])
900-
let elements = await this.findElements({css: "*[data-__webdriver_id=" + payload['target']})
908+
let elements = await this.findElements({ css: "*[data-__webdriver_id=" + payload['target'] })
901909

902910
if (elements.length === 0) {
903911
return

javascript/node/selenium-webdriver/lib/atoms/BUILD.bazel

+9
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,12 @@ genrule(
3535
tools = [":make_atoms_module"],
3636
visibility = ["//javascript/node/selenium-webdriver:__pkg__"],
3737
)
38+
39+
genrule(
40+
name = "mutation-listener",
41+
srcs = ["//javascript/cdp-support:mutation-listener.js"],
42+
outs = ["mutation-listener.js"],
43+
cmd = "mv $(location //javascript/cdp-support:mutation-listener.js) $@",
44+
tools = [],
45+
visibility = ["//javascript/node/selenium-webdriver:__pkg__"],
46+
)

0 commit comments

Comments
 (0)