Skip to content

Commit 0da6868

Browse files
authored
Merge branch 'trunk' into fix-pagesize-example-doc
2 parents 2a08ad6 + 651f604 commit 0da6868

File tree

11 files changed

+221
-171
lines changed

11 files changed

+221
-171
lines changed

Diff for: LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@
187187
same "printed page" as the copyright notice for easier
188188
identification within third-party archives.
189189

190-
Copyright 2024 Software Freedom Conservancy (SFC)
190+
Copyright 2025 Software Freedom Conservancy (SFC)
191191

192192
Licensed under the Apache License, Version 2.0 (the "License");
193193
you may not use this file except in compliance with the License.

Diff for: examples/python/requirements.txt

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
selenium==4.27.1
2-
pytest
3-
trio
4-
pytest-trio
5-
pytest-rerunfailures
6-
flake8
7-
requests
2+
pytest==8.3.4
3+
trio==0.27.0
4+
pytest-trio==0.8.0
5+
pytest-rerunfailures==14.0
6+
flake8==7.1.1
7+
requests==2.32.3

Diff for: examples/python/tests/elements/test_locators.py

+82
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,84 @@
1+
import pytest
12
from selenium import webdriver
3+
from selenium.webdriver.common.by import By
24

5+
6+
def test_class_name():
7+
driver = webdriver.Chrome()
8+
driver.get("https://www.selenium.dev/selenium/web/locators_tests/locators.html")
9+
element = driver.find_element(By.CLASS_NAME, "information")
10+
11+
assert element is not None
12+
assert element.tag_name == "input"
13+
14+
driver.quit()
15+
16+
def test_css_selector(driver):
17+
driver = webdriver.Chrome()
18+
driver.get("https://www.selenium.dev/selenium/web/locators_tests/locators.html")
19+
element = driver.find_element(By.CSS_SELECTOR, "#fname")
20+
21+
assert element is not None
22+
assert element.get_attribute("value") == "Jane"
23+
24+
driver.quit()
25+
26+
def test_id(driver):
27+
driver = webdriver.Chrome()
28+
driver.get("https://www.selenium.dev/selenium/web/locators_tests/locators.html")
29+
element = driver.find_element(By.ID, "lname")
30+
31+
assert element is not None
32+
assert element.get_attribute("value") == "Doe"
33+
34+
driver.quit()
35+
36+
def test_name(driver):
37+
driver = webdriver.Chrome()
38+
driver.get("https://www.selenium.dev/selenium/web/locators_tests/locators.html")
39+
element = driver.find_element(By.NAME, "newsletter")
40+
41+
assert element is not None
42+
assert element.tag_name == "input"
43+
44+
driver.quit()
45+
46+
def test_link_text(driver):
47+
driver = webdriver.Chrome()
48+
driver.get("https://www.selenium.dev/selenium/web/locators_tests/locators.html")
49+
element = driver.find_element(By.LINK_TEXT, "Selenium Official Page")
50+
51+
assert element is not None
52+
assert element.get_attribute("href") == "https://www.selenium.dev/"
53+
54+
driver.quit()
55+
56+
def test_partial_link_text(driver):
57+
driver = webdriver.Chrome()
58+
driver.get("https://www.selenium.dev/selenium/web/locators_tests/locators.html")
59+
element = driver.find_element(By.PARTIAL_LINK_TEXT, "Official Page")
60+
61+
assert element is not None
62+
assert element.get_attribute("href") == "https://www.selenium.dev/"
63+
64+
driver.quit()
65+
66+
def test_tag_name(driver):
67+
driver = webdriver.Chrome()
68+
driver.get("https://www.selenium.dev/selenium/web/locators_tests/locators.html")
69+
element = driver.find_element(By.TAG_NAME, "a")
70+
71+
assert element is not None
72+
assert element.get_attribute("href") == "https://www.selenium.dev/"
73+
74+
driver.quit()
75+
76+
def test_xpath(driver):
77+
driver = webdriver.Chrome()
78+
driver.get("https://www.selenium.dev/selenium/web/locators_tests/locators.html")
79+
element = driver.find_element(By.XPATH, "//input[@value='f']")
80+
81+
assert element is not None
82+
assert element.get_attribute("type") == "radio"
83+
84+
driver.quit()

Diff for: website_and_docs/content/documentation/webdriver/elements/locators.en.md

+25-33
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ page. To understand and create locator we will use the following HTML snippet.
4949
</style>
5050
<h2>Contact Selenium</h2>
5151

52-
<form action="/action_page.php">
52+
<form>
5353
<input type="radio" name="gender" value="m" />Male &nbsp;
5454
<input type="radio" name="gender" value="f" />Female <br>
5555
<br>
@@ -80,10 +80,9 @@ available in Selenium.
8080
WebDriver driver = new ChromeDriver();
8181
driver.findElement(By.className("information"));
8282
{{< /tab >}}
83-
{{< tab header="Python" >}}
84-
driver = webdriver.Chrome()
85-
driver.find_element(By.CLASS_NAME, "information")
86-
{{< /tab >}}
83+
{{< tab header="Python" text=true >}}
84+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L7-L9" >}}
85+
{{< /tab >}}
8786
{{< tab header="CSharp" >}}
8887
var driver = new ChromeDriver();
8988
driver.FindElement(By.ClassName("information"));
@@ -114,10 +113,9 @@ textbox, using css.
114113
WebDriver driver = new ChromeDriver();
115114
driver.findElement(By.cssSelector("#fname"));
116115
{{< /tab >}}
117-
{{< tab header="Python" >}}
118-
driver = webdriver.Chrome()
119-
driver.find_element(By.CSS_SELECTOR, "#fname")
120-
{{< /tab >}}
116+
{{< tab header="Python" text=true >}}
117+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L17-L19" >}}
118+
{{< /tab >}}
121119
{{< tab header="CSharp" >}}
122120
var driver = new ChromeDriver();
123121
driver.FindElement(By.CssSelector("#fname"));
@@ -146,10 +144,9 @@ We will identify the Last Name field using it.
146144
WebDriver driver = new ChromeDriver();
147145
driver.findElement(By.id("lname"));
148146
{{< /tab >}}
149-
{{< tab header="Python" >}}
150-
driver = webdriver.Chrome()
151-
driver.find_element(By.ID, "lname")
152-
{{< /tab >}}
147+
{{< tab header="Python" text=true >}}
148+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L27-L29" >}}
149+
{{< /tab >}}
153150
{{< tab header="CSharp" >}}
154151
var driver = new ChromeDriver();
155152
driver.FindElement(By.Id("lname"));
@@ -179,10 +176,9 @@ We will identify the Newsletter checkbox using it.
179176
WebDriver driver = new ChromeDriver();
180177
driver.findElement(By.name("newsletter"));
181178
{{< /tab >}}
182-
{{< tab header="Python" >}}
183-
driver = webdriver.Chrome()
184-
driver.find_element(By.NAME, "newsletter")
185-
{{< /tab >}}
179+
{{< tab header="Python" text=true >}}
180+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L37-L39" >}}
181+
{{< /tab >}}
186182
{{< tab header="CSharp" >}}
187183
var driver = new ChromeDriver();
188184
driver.FindElement(By.Name("newsletter"));
@@ -210,10 +206,9 @@ In the HTML snippet shared, we have a link available, let's see how will we loca
210206
WebDriver driver = new ChromeDriver();
211207
driver.findElement(By.linkText("Selenium Official Page"));
212208
{{< /tab >}}
213-
{{< tab header="Python" >}}
214-
driver = webdriver.Chrome()
215-
driver.find_element(By.LINK_TEXT, "Selenium Official Page")
216-
{{< /tab >}}
209+
{{< tab header="Python" text=true >}}
210+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L47-L49" >}}
211+
{{< /tab >}}
217212
{{< tab header="CSharp" >}}
218213
var driver = new ChromeDriver();
219214
driver.FindElement(By.LinkText("Selenium Official Page"));
@@ -242,10 +237,9 @@ In the HTML snippet shared, we have a link available, lets see how will we locat
242237
WebDriver driver = new ChromeDriver();
243238
driver.findElement(By.partialLinkText("Official Page"));
244239
{{< /tab >}}
245-
{{< tab header="Python" >}}
246-
driver = webdriver.Chrome()
247-
driver.find_element(By.PARTIAL_LINK_TEXT, "Official Page")
248-
{{< /tab >}}
240+
{{< tab header="Python" text=true >}}
241+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L57-L59" >}}
242+
{{< /tab >}}
249243
{{< tab header="CSharp" >}}
250244
var driver = new ChromeDriver();
251245
driver.FindElement(By.PartialLinkText("Official Page"));
@@ -272,10 +266,9 @@ From the above HTML snippet shared, lets identify the link, using its html tag "
272266
WebDriver driver = new ChromeDriver();
273267
driver.findElement(By.tagName("a"));
274268
{{< /tab >}}
275-
{{< tab header="Python" >}}
276-
driver = webdriver.Chrome()
277-
driver.find_element(By.TAG_NAME, "a")
278-
{{< /tab >}}
269+
{{< tab header="Python" text=true >}}
270+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L67-L69" >}}
271+
{{< /tab >}}
279272
{{< tab header="CSharp" >}}
280273
var driver = new ChromeDriver();
281274
driver.FindElement(By.TagName("a"));
@@ -308,10 +301,9 @@ first name text box. Let us create locator for female radio button using xpath.
308301
WebDriver driver = new ChromeDriver();
309302
driver.findElement(By.xpath("//input[@value='f']"));
310303
{{< /tab >}}
311-
{{< tab header="Python" >}}
312-
driver = webdriver.Chrome()
313-
driver.find_element(By.XPATH, "//input[@value='f']")
314-
{{< /tab >}}
304+
{{< tab header="Python" text=true >}}
305+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L77-L79" >}}
306+
{{< /tab >}}
315307
{{< tab header="CSharp" >}}
316308
var driver = new ChromeDriver();
317309
driver.FindElement(By.Xpath("//input[@value='f']"));

Diff for: website_and_docs/content/documentation/webdriver/elements/locators.ja.md

+25-33
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ page. To understand and create locator we will use the following HTML snippet.
4848
</style>
4949
<h2>Contact Selenium</h2>
5050

51-
<form action="/action_page.php">
51+
<form>
5252
<input type="radio" name="gender" value="m" />Male &nbsp;
5353
<input type="radio" name="gender" value="f" />Female <br>
5454
<br>
@@ -78,10 +78,9 @@ available in Selenium.
7878
WebDriver driver = new ChromeDriver();
7979
driver.findElement(By.className("information"));
8080
{{< /tab >}}
81-
{{< tab header="Python" >}}
82-
driver = webdriver.Chrome()
83-
driver.find_element(By.CLASS_NAME, "information")
84-
{{< /tab >}}
81+
{{< tab header="Python" text=true >}}
82+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L7-L9" >}}
83+
{{< /tab >}}
8584
{{< tab header="CSharp" >}}
8685
var driver = new ChromeDriver();
8786
driver.FindElement(By.ClassName("information"));
@@ -111,10 +110,9 @@ textbox, using css.
111110
WebDriver driver = new ChromeDriver();
112111
driver.findElement(By.cssSelector("#fname"));
113112
{{< /tab >}}
114-
{{< tab header="Python" >}}
115-
driver = webdriver.Chrome()
116-
driver.find_element(By.CSS_SELECTOR, "#fname")
117-
{{< /tab >}}
113+
{{< tab header="Python" text=true >}}
114+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L17-L19" >}}
115+
{{< /tab >}}
118116
{{< tab header="CSharp" >}}
119117
var driver = new ChromeDriver();
120118
driver.FindElement(By.CssSelector("#fname"));
@@ -142,10 +140,9 @@ We will identify the Last Name field using it.
142140
WebDriver driver = new ChromeDriver();
143141
driver.findElement(By.id("lname"));
144142
{{< /tab >}}
145-
{{< tab header="Python" >}}
146-
driver = webdriver.Chrome()
147-
driver.find_element(By.ID, "lname")
148-
{{< /tab >}}
143+
{{< tab header="Python" text=true >}}
144+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L27-L29" >}}
145+
{{< /tab >}}
149146
{{< tab header="CSharp" >}}
150147
var driver = new ChromeDriver();
151148
driver.FindElement(By.Id("lname"));
@@ -174,10 +171,9 @@ We will identify the Newsletter checkbox using it.
174171
WebDriver driver = new ChromeDriver();
175172
driver.findElement(By.name("newsletter"));
176173
{{< /tab >}}
177-
{{< tab header="Python" >}}
178-
driver = webdriver.Chrome()
179-
driver.find_element(By.NAME, "newsletter")
180-
{{< /tab >}}
174+
{{< tab header="Python" text=true >}}
175+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L37-L39" >}}
176+
{{< /tab >}}
181177
{{< tab header="CSharp" >}}
182178
var driver = new ChromeDriver();
183179
driver.FindElement(By.Name("newsletter"));
@@ -204,10 +200,9 @@ In the HTML snippet shared, we have a link available, lets see how will we locat
204200
WebDriver driver = new ChromeDriver();
205201
driver.findElement(By.linkText("Selenium Official Page"));
206202
{{< /tab >}}
207-
{{< tab header="Python" >}}
208-
driver = webdriver.Chrome()
209-
driver.find_element(By.LINK_TEXT, "Selenium Official Page")
210-
{{< /tab >}}
203+
{{< tab header="Python" text=true >}}
204+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L47-L49" >}}
205+
{{< /tab >}}
211206
{{< tab header="CSharp" >}}
212207
var driver = new ChromeDriver();
213208
driver.FindElement(By.LinkText("Selenium Official Page"));
@@ -235,10 +230,9 @@ In the HTML snippet shared, we have a link available, lets see how will we locat
235230
WebDriver driver = new ChromeDriver();
236231
driver.findElement(By.partialLinkText("Official Page"));
237232
{{< /tab >}}
238-
{{< tab header="Python" >}}
239-
driver = webdriver.Chrome()
240-
driver.find_element(By.PARTIAL_LINK_TEXT, "Official Page")
241-
{{< /tab >}}
233+
{{< tab header="Python" text=true >}}
234+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L57-L59" >}}
235+
{{< /tab >}}
242236
{{< tab header="CSharp" >}}
243237
var driver = new ChromeDriver();
244238
driver.FindElement(By.PartialLinkText("Official Page"));
@@ -264,10 +258,9 @@ From the above HTML snippet shared, lets identify the link, using its html tag "
264258
WebDriver driver = new ChromeDriver();
265259
driver.findElement(By.tagName("a"));
266260
{{< /tab >}}
267-
{{< tab header="Python" >}}
268-
driver = webdriver.Chrome()
269-
driver.find_element(By.TAG_NAME, "a")
270-
{{< /tab >}}
261+
{{< tab header="Python" text=true >}}
262+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L67-L69" >}}
263+
{{< /tab >}}
271264
{{< tab header="CSharp" >}}
272265
var driver = new ChromeDriver();
273266
driver.FindElement(By.TagName("a"));
@@ -299,10 +292,9 @@ first name text box. Let us create locator for female radio button using xpath.
299292
WebDriver driver = new ChromeDriver();
300293
driver.findElement(By.xpath("//input[@value='f']"));
301294
{{< /tab >}}
302-
{{< tab header="Python" >}}
303-
driver = webdriver.Chrome()
304-
driver.find_element(By.XPATH, "//input[@value='f']")
305-
{{< /tab >}}
295+
{{< tab header="Python" text=true >}}
296+
{{< gh-codeblock path="/examples/python/tests/elements/test_locators.py#L77-L79" >}}
297+
{{< /tab >}}
306298
{{< tab header="CSharp" >}}
307299
var driver = new ChromeDriver();
308300
driver.FindElement(By.Xpath("//input[@value='f']"));

0 commit comments

Comments
 (0)