Skip to content

Commit 7d710ea

Browse files
authored
Merge branch 'trunk' into renovate/selenium.webdriver-4.x
2 parents 1c9dd15 + b96ad86 commit 7d710ea

29 files changed

+250
-72
lines changed

examples/javascript/package-lock.json

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

examples/javascript/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"license": "Apache-2.0",
99
"dependencies": {
1010
"assert": "2.1.0",
11-
"selenium-webdriver": "4.20.0"
11+
"selenium-webdriver": "4.21.0"
1212
},
1313
"devDependencies": {
1414
"mocha": "10.4.0"

examples/javascript/test/elements/interactions.spec.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ suite(function (env) {
1919
let inputField = await driver.findElement(By.name('no_type'));
2020
await inputField.clear();
2121
await inputField.sendKeys('Selenium');
22-
assert.strictEqual(await inputField.getText(), "Selenium");
22+
const text = await inputField.getAttribute('value');
23+
assert.strictEqual(text, "Selenium");
2324
} catch (e) {
2425
console.log(e)
2526
}

examples/javascript/test/waits/waits.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const { By, Browser, until } = require('selenium-webdriver');
33
const assert = require("node:assert");
44

55
suite(function (env) {
6-
describe('Element Interactions', function () {
6+
describe('Waits', function () {
77
let driver;
88

99
before(async function () {
@@ -47,7 +47,7 @@ suite(function (env) {
4747
await driver.get('https://www.selenium.dev/selenium/web/dynamic.html');
4848
let revealed = await driver.findElement(By.id("revealed"));
4949
await driver.findElement(By.id("reveal")).click();
50-
await driver.wait(until.elementIsDisabled(revealed), 2000);
50+
await driver.wait(until.elementIsVisible(revealed), 2000);
5151
await revealed.sendKeys("Displayed");
5252
assert.equal(await revealed.getAttribute("value"), "Displayed")
5353
})

examples/kotlin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<version>1.0.0</version>
1010

1111
<properties>
12-
<kotlin.version>1.9.24</kotlin.version>
12+
<kotlin.version>2.0.0</kotlin.version>
1313

1414
<slf4j.version>2.0.13</slf4j.version>
1515
<logback.version>1.5.6</logback.version>

examples/ruby/Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ gem 'rspec', '~> 3.0'
88
gem 'rubocop', '~> 1.35'
99
gem 'rubocop-rspec', '~> 2.12'
1010
gem 'selenium-devtools', '= 0.125.0'
11-
gem 'selenium-webdriver', '= 4.20.1'
11+
gem 'selenium-webdriver', '= 4.21.1'

examples/ruby/Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ GEM
5757
rubyzip (2.3.2)
5858
selenium-devtools (0.125.0)
5959
selenium-webdriver (~> 4.2)
60-
selenium-webdriver (4.20.1)
60+
selenium-webdriver (4.21.1)
6161
base64 (~> 0.2)
6262
rexml (~> 3.2, >= 3.2.5)
6363
rubyzip (>= 1.2.2, < 3.0)
@@ -80,7 +80,7 @@ DEPENDENCIES
8080
rubocop (~> 1.35)
8181
rubocop-rspec (~> 2.12)
8282
selenium-devtools (= 0.125.0)
83-
selenium-webdriver (= 4.20.1)
83+
selenium-webdriver (= 4.21.1)
8484

8585
BUNDLED WITH
8686
2.5.6

examples/ruby/spec/browsers/chrome_spec.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,25 @@
133133
'download_throughput' => 200,
134134
'upload_throughput' => 200)
135135
end
136+
137+
it 'gets the browser logs' do
138+
@driver = Selenium::WebDriver.for :chrome
139+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/'
140+
sleep 1
141+
logs = @driver.logs.get(:browser)
142+
143+
expect(logs.first.message).to include 'Failed to load resource'
144+
end
145+
146+
it 'sets permissions' do
147+
@driver = Selenium::WebDriver.for :chrome
148+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/'
149+
@driver.add_permission('camera', 'denied')
150+
@driver.add_permissions('clipboard-read' => 'denied', 'clipboard-write' => 'prompt')
151+
expect(permission('camera')).to eq('denied')
152+
expect(permission('clipboard-read')).to eq('denied')
153+
expect(permission('clipboard-write')).to eq('prompt')
154+
end
136155
end
137156

138157
def driver_finder
@@ -142,4 +161,9 @@ def driver_finder
142161
ENV['CHROMEDRIVER_BIN'] = finder.driver_path
143162
ENV['CHROME_BIN'] = finder.browser_path
144163
end
164+
165+
def permission(name)
166+
@driver.execute_async_script('callback = arguments[arguments.length - 1];' \
167+
'callback(navigator.permissions.query({name: arguments[0]}));', name)['state']
168+
end
145169
end

examples/ruby/spec/browsers/edge_spec.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,57 @@
113113
end
114114
end
115115

116+
describe 'Special Features' do
117+
it 'casts' do
118+
@driver = Selenium::WebDriver.for :edge
119+
sinks = @driver.cast_sinks
120+
unless sinks.empty?
121+
device_name = sinks.first['name']
122+
@driver.start_cast_tab_mirroring(device_name)
123+
expect { @driver.stop_casting(device_name) }.not_to raise_exception
124+
end
125+
end
126+
127+
it 'gets and sets network conditions' do
128+
@driver = Selenium::WebDriver.for :edge
129+
@driver.network_conditions = {offline: false, latency: 100, throughput: 200}
130+
expect(@driver.network_conditions).to eq(
131+
'offline' => false,
132+
'latency' => 100,
133+
'download_throughput' => 200,
134+
'upload_throughput' => 200)
135+
end
136+
137+
it 'gets the browser logs' do
138+
@driver = Selenium::WebDriver.for :edge
139+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/'
140+
sleep 1
141+
logs = @driver.logs.get(:browser)
142+
143+
expect(logs.first.message).to include 'Failed to load resource'
144+
end
145+
146+
it 'sets permissions' do
147+
@driver = Selenium::WebDriver.for :edge
148+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/'
149+
@driver.add_permission('camera', 'denied')
150+
@driver.add_permissions('clipboard-read' => 'denied', 'clipboard-write' => 'prompt')
151+
expect(permission('camera')).to eq('denied')
152+
expect(permission('clipboard-read')).to eq('denied')
153+
expect(permission('clipboard-write')).to eq('prompt')
154+
end
155+
end
156+
116157
def driver_finder
117158
options = Selenium::WebDriver::Options.edge(browser_version: 'stable')
118159
service = Selenium::WebDriver::Service.edge
119160
finder = Selenium::WebDriver::DriverFinder.new(options, service)
120161
ENV['EDGEDRIVER_BIN'] = finder.driver_path
121162
ENV['EDGE_BIN'] = finder.browser_path
122163
end
164+
165+
def permission(name)
166+
@driver.execute_async_script('callback = arguments[arguments.length - 1];' \
167+
'callback(navigator.permissions.query({name: arguments[0]}));', name)['state']
168+
end
123169
end

website_and_docs/content/about/_index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ <h2 class="card-title text-center">Get involved</h2>
104104
</div>
105105
<div class="card-footer bg-transparent border-0">
106106
<div class="selenium-button-container">
107-
<a href="/sponsors" class="selenium-button selenium-white-cyan text-uppercase fw-bold">
107+
<a href="/getinvolved" class="selenium-button selenium-white-cyan text-uppercase fw-bold">
108108
Contribute
109109
<i class="ps-3 fas fa-caret-right"></i>
110110
</a>

0 commit comments

Comments
 (0)