Skip to content

Commit 01543c0

Browse files
authored
Merge branch 'trunk' into renovate/selenium-webdriver-4.x
2 parents 16b6ee3 + c3745ec commit 01543c0

File tree

8 files changed

+217
-178
lines changed

8 files changed

+217
-178
lines changed

.github/workflows/ruby-examples.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
bundler-cache: true
5252
- name: Install Gems Nightly non-Windows
5353
if: matrix.release == 'nightly' && matrix.os != 'windows-latest'
54-
run:
54+
run:
5555
|
5656
latest_nightly_webdriver=$(./scripts/latest-nightly-version.sh rubygems selenium-webdriver)
5757
cd examples/ruby
@@ -62,7 +62,7 @@ jobs:
6262
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6363
- name: Install Gems Nightly Windows
6464
if: matrix.release == 'nightly' && matrix.os == 'windows-latest'
65-
run:
65+
run:
6666
|
6767
$latest_nightly_webdriver = ./scripts/latest-nightly-version.ps1 rubygems selenium-webdriver
6868
cd examples/ruby

examples/java/src/test/java/dev/selenium/drivers/OptionsTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,18 @@ public void setPageLoadStrategyNone() {
4747
driver.quit();
4848
}
4949
}
50+
51+
@Test
52+
public void setAcceptInsecureCerts() {
53+
ChromeOptions chromeOptions = new ChromeOptions();
54+
chromeOptions.setAcceptInsecureCerts(true);
55+
WebDriver driver = new ChromeDriver(chromeOptions);
56+
try {
57+
// Navigate to Url
58+
driver.get("https://selenium.dev");
59+
} finally {
60+
driver.quit();
61+
}
62+
}
5063
}
5164

examples/ruby/spec/browsers/safari_spec.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
describe 'Service' do
1414
let(:directory) { "#{Dir.home}/Library/Logs/com.apple.WebDriver/*" }
1515

16-
it 'enable logs' do
16+
it 'enables logs' do
1717
original_count = Dir[directory].length
1818
service = Selenium::WebDriver::Service.safari
1919

@@ -31,10 +31,12 @@
3131
}.to raise_error(Selenium::WebDriver::Error::WebDriverError, /Safari Service does not support setting log output/)
3232
end
3333
end
34+
end
3435

36+
RSpec.describe 'Safari Technology Preview', skip: "This test is being skipped as GitHub Actions have no support for Safari Technology Preview" do
3537
it 'sets the technology preview' do
3638
Selenium::WebDriver::Safari.technology_preview!
3739
local_driver = Selenium::WebDriver.for :safari
3840
expect(local_driver.capabilities.browser_name).to eq 'Safari Technology Preview'
3941
end
40-
end
42+
end

examples/ruby/spec/elements/locators_spec.rb

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,62 @@
22

33
require 'spec_helper'
44

5-
RSpec.describe 'Element Locators' do
6-
let(:driver) { start_session }
5+
RSpec.describe 'Element Locators', skip: 'These are reference following the documentation example' do
6+
it 'finds element by class name' do
7+
driver.find_element(class: 'information')
8+
end
9+
10+
it 'finds element by css selector' do
11+
driver.find_element(css: '#fname')
12+
end
13+
14+
it 'finds element by id' do
15+
driver.find_element(id: 'lname')
16+
end
17+
18+
it 'find element by name' do
19+
driver.find_element(name: 'newsletter')
20+
end
21+
22+
it 'finds element by link text' do
23+
driver.find_element(link_text: 'Selenium Official Page')
24+
end
25+
26+
it 'finds element by partial link text' do
27+
driver.find_element(partial_link_text: 'Official Page')
28+
end
29+
30+
it 'finds element by tag name' do
31+
driver.find_element(tag_name: 'a')
32+
end
33+
34+
it 'finds element by xpath' do
35+
driver.find_element(xpath: "//input[@value='f']")
36+
end
37+
38+
context 'with relative locators' do
39+
it 'finds element above' do
40+
driver.find_element({relative: {tag_name: 'input', above: {id: 'password'}}})
41+
end
42+
43+
it 'finds element below' do
44+
driver.find_element({relative: {tag_name: 'input', below: {id: 'email'}}})
45+
end
46+
47+
it 'finds element to the left' do
48+
driver.find_element({relative: {tag_name: 'button', left: {id: 'submit'}}})
49+
end
50+
51+
it 'finds element to the right' do
52+
driver.find_element({relative: {tag_name: 'button', right: {id: 'cancel'}}})
53+
end
54+
55+
it 'finds near element' do
56+
driver.find_element({relative: {tag_name: 'input', near: {id: 'lbl-email'}}})
57+
end
58+
59+
it 'chains relative locators' do
60+
driver.find_element({relative: {tag_name: 'button', below: {id: 'email'}, right: {id: 'cancel'}}})
61+
end
62+
end
763
end

website_and_docs/content/documentation/webdriver/elements/locators.en.md

Lines changed: 35 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,8 @@ available in Selenium.
8888
var driver = new ChromeDriver();
8989
driver.FindElement(By.ClassName("information"));
9090
{{< /tab >}}
91-
{{< tab header="Ruby" >}}
92-
driver = Selenium::WebDriver.for :chrome
93-
driver.find_element(class: 'information')
91+
{{< tab header="Ruby" text=true >}}
92+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L7" >}}
9493
{{< /tab >}}
9594
{{< tab header="JavaScript" >}}
9695
let driver = await new Builder().forBrowser('chrome').build();
@@ -123,10 +122,9 @@ textbox, using css.
123122
var driver = new ChromeDriver();
124123
driver.FindElement(By.CssSelector("#fname"));
125124
{{< /tab >}}
126-
{{< tab header="Ruby" >}}
127-
driver = Selenium::WebDriver.for :chrome
128-
driver.find_element(css: '#fname')
129-
{{< /tab >}}
125+
{{< tab header="Ruby" text=true >}}
126+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L11" >}}
127+
{{< /tab >}}
130128
{{< tab header="JavaScript" >}}
131129
let driver = await new Builder().forBrowser('chrome').build();
132130
const loc = await driver.findElement(By.css('#fname'));
@@ -156,10 +154,9 @@ We will identify the Last Name field using it.
156154
var driver = new ChromeDriver();
157155
driver.FindElement(By.Id("lname"));
158156
{{< /tab >}}
159-
{{< tab header="Ruby" >}}
160-
driver = Selenium::WebDriver.for :chrome
161-
driver.find_element(id: 'lname')
162-
{{< /tab >}}
157+
{{< tab header="Ruby" text=true >}}
158+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L15" >}}
159+
{{< /tab >}}
163160
{{< tab header="JavaScript" >}}
164161
let driver = await new Builder().forBrowser('chrome').build();
165162
const loc = await driver.findElement(By.id('lname'));
@@ -190,10 +187,9 @@ We will identify the Newsletter checkbox using it.
190187
var driver = new ChromeDriver();
191188
driver.FindElement(By.Name("newsletter"));
192189
{{< /tab >}}
193-
{{< tab header="Ruby" >}}
194-
driver = Selenium::WebDriver.for :chrome
195-
driver.find_element(name: 'newsletter')
196-
{{< /tab >}}
190+
{{< tab header="Ruby" text=true >}}
191+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L19" >}}
192+
{{< /tab >}}
197193
{{< tab header="JavaScript" >}}
198194
let driver = await new Builder().forBrowser('chrome').build();
199195
const loc = await driver.findElement(By.name('newsletter'));
@@ -222,10 +218,9 @@ In the HTML snippet shared, we have a link available, let's see how will we loca
222218
var driver = new ChromeDriver();
223219
driver.FindElement(By.LinkText("Selenium Official Page"));
224220
{{< /tab >}}
225-
{{< tab header="Ruby" >}}
226-
driver = Selenium::WebDriver.for :chrome
227-
driver.find_element(link_text: 'Selenium Official Page')
228-
{{< /tab >}}
221+
{{< tab header="Ruby" text=true >}}
222+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L23" >}}
223+
{{< /tab >}}
229224
{{< tab header="JavaScript" >}}
230225
let driver = await new Builder().forBrowser('chrome').build();
231226
const loc = await driver.findElement(By.linkText('Selenium Official Page'));
@@ -255,10 +250,9 @@ In the HTML snippet shared, we have a link available, lets see how will we locat
255250
var driver = new ChromeDriver();
256251
driver.FindElement(By.PartialLinkText("Official Page"));
257252
{{< /tab >}}
258-
{{< tab header="Ruby" >}}
259-
driver = Selenium::WebDriver.for :chrome
260-
driver.find_element(partial_link_text: 'Official Page')
261-
{{< /tab >}}
253+
{{< tab header="Ruby" text=true >}}
254+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L27" >}}
255+
{{< /tab >}}
262256
{{< tab header="JavaScript" >}}
263257
let driver = await new Builder().forBrowser('chrome').build();
264258
const loc = await driver.findElement(By.partialLinkText('Official Page'));
@@ -286,10 +280,9 @@ From the above HTML snippet shared, lets identify the link, using its html tag "
286280
var driver = new ChromeDriver();
287281
driver.FindElement(By.TagName("a"));
288282
{{< /tab >}}
289-
{{< tab header="Ruby" >}}
290-
driver = Selenium::WebDriver.for :chrome
291-
driver.find_element(tag_name: 'a')
292-
{{< /tab >}}
283+
{{< tab header="Ruby" text=true >}}
284+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L31" >}}
285+
{{< /tab >}}
293286
{{< tab header="JavaScript" >}}
294287
let driver = await new Builder().forBrowser('chrome').build();
295288
const loc = await driver.findElement(By.tagName('a'));
@@ -323,10 +316,9 @@ first name text box. Let us create locator for female radio button using xpath.
323316
var driver = new ChromeDriver();
324317
driver.FindElement(By.Xpath("//input[@value='f']"));
325318
{{< /tab >}}
326-
{{< tab header="Ruby" >}}
327-
driver = Selenium::WebDriver.for :chrome
328-
driver.find_element(xpath: '//input[@value='f']')
329-
{{< /tab >}}
319+
{{< tab header="Ruby" text=true >}}
320+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L35" >}}
321+
{{< /tab >}}
330322
{{< tab header="JavaScript" >}}
331323
let driver = await new Builder().forBrowser('chrome').build();
332324
const loc = await driver.findElement(By.xpath('//input[@value='f']'));
@@ -377,8 +369,8 @@ email_locator = locate_with(By.TAG_NAME, "input").above({By.ID: "password"})
377369
{{< tab header="CSharp" >}}
378370
var emailLocator = RelativeBy.WithLocator(By.TagName("input")).Above(By.Id("password"));
379371
{{< /tab >}}
380-
{{< tab header="Ruby" >}}
381-
email_locator = {relative: {tag_name: 'input', above: {id: 'password'}}}
372+
{{< tab header="Ruby" text=true >}}
373+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L40" >}}
382374
{{< /tab >}}
383375
{{< tab header="JavaScript" >}}
384376
let emailLocator = locateWith(By.tagName('input')).above(By.id('password'));
@@ -404,8 +396,8 @@ password_locator = locate_with(By.TAG_NAME, "input").below({By.ID: "email"})
404396
{{< tab header="CSharp" >}}
405397
var passwordLocator = RelativeBy.WithLocator(By.TagName("input")).Below(By.Id("email"));
406398
{{< /tab >}}
407-
{{< tab header="Ruby" >}}
408-
password_locator = {relative: {tag_name: 'input', below: {id: 'email'}}}
399+
{{< tab header="Ruby" text=true >}}
400+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L44" >}}
409401
{{< /tab >}}
410402
{{< tab header="JavaScript" >}}
411403
let passwordLocator = locateWith(By.tagName('input')).below(By.id('email'));
@@ -431,8 +423,8 @@ cancel_locator = locate_with(By.TAG_NAME, "button").to_left_of({By.ID: "submit"}
431423
{{< tab header="CSharp" >}}
432424
var cancelLocator = RelativeBy.WithLocator(By.tagName("button")).LeftOf(By.Id("submit"));
433425
{{< /tab >}}
434-
{{< tab header="Ruby" >}}
435-
cancel_locator = {relative: {tag_name: 'button', left: {id: 'submit'}}}
426+
{{< tab header="Ruby" text=true >}}
427+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L48" >}}
436428
{{< /tab >}}
437429
{{< tab header="JavaScript" >}}
438430
let cancelLocator = locateWith(By.tagName('button')).toLeftOf(By.id('submit'));
@@ -458,8 +450,8 @@ submit_locator = locate_with(By.TAG_NAME, "button").to_right_of({By.ID: "cancel"
458450
{{< tab header="CSharp" >}}
459451
var submitLocator = RelativeBy.WithLocator(By.tagName("button")).RightOf(By.Id("cancel"));
460452
{{< /tab >}}
461-
{{< tab header="Ruby" >}}
462-
submit_locator = {relative: {tag_name: 'button', right: {id: 'cancel'}}}
453+
{{< tab header="Ruby" text=true >}}
454+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L52" >}}
463455
{{< /tab >}}
464456
{{< tab header="JavaScript" >}}
465457
let submitLocator = locateWith(By.tagName('button')).toRightOf(By.id('cancel'));
@@ -487,8 +479,8 @@ email_locator = locate_with(By.TAG_NAME, "input").near({By.ID: "lbl-email"})
487479
{{< tab header="CSharp" >}}
488480
var emailLocator = RelativeBy.WithLocator(By.tagName("input")).Near(By.Id("lbl-email"));
489481
{{< /tab >}}
490-
{{< tab header="Ruby" >}}
491-
email_locator = {relative: {tag_name: 'input', near: {id: 'lbl-email'}}}
482+
{{< tab header="Ruby" text=true >}}
483+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L56" >}}
492484
{{< /tab >}}
493485
{{< tab header="JavaScript" >}}
494486
let emailLocator = locateWith(By.tagName('input')).near(By.id('lbl-email'));
@@ -513,8 +505,8 @@ submit_locator = locate_with(By.TAG_NAME, "button").below({By.ID: "email"}).to_r
513505
{{< tab header="CSharp" >}}
514506
var submitLocator = RelativeBy.WithLocator(By.tagName("button")).Below(By.Id("email")).RightOf(By.Id("cancel"));
515507
{{< /tab >}}
516-
{{< tab header="Ruby" >}}
517-
submit_locator = {relative: {tag_name: 'button', below: {id: 'email'}, right: {id: 'cancel'}}}
508+
{{< tab header="Ruby" text=true >}}
509+
{{< gh-codeblock path="examples/ruby/spec/elements/locators_spec.rb#L60" >}}
518510
{{< /tab >}}
519511
{{< tab header="JavaScript" >}}
520512
let submitLocator = locateWith(By.tagName('button')).below(By.id('email')).toRightOf(By.id('cancel'));

0 commit comments

Comments
 (0)