Skip to content

Commit 149a43f

Browse files
authored
Merge branch 'trunk' into renovate/kotlin-monorepo
2 parents 238e484 + 33a0c76 commit 149a43f

25 files changed

+432
-392
lines changed

examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java

+39-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.nio.file.Path;
99
import java.nio.file.Paths;
1010
import java.util.List;
11+
import java.util.Map;
1112
import java.util.logging.Level;
1213
import java.util.regex.Pattern;
1314
import org.junit.jupiter.api.AfterEach;
@@ -20,11 +21,10 @@
2021
import org.openqa.selenium.chrome.ChromeOptions;
2122
import org.openqa.selenium.chromium.ChromiumDriverLogLevel;
2223
import org.openqa.selenium.chromium.ChromiumNetworkConditions;
23-
import org.openqa.selenium.logging.LogEntries;
24-
import org.openqa.selenium.logging.LogType;
25-
import org.openqa.selenium.logging.LoggingPreferences;
24+
import org.openqa.selenium.logging.*;
2625
import org.openqa.selenium.remote.service.DriverFinder;
2726

27+
2828
public class ChromeTest extends BaseTest {
2929
@AfterEach
3030
public void clearProperties() {
@@ -222,4 +222,40 @@ public void setNetworkConditions() {
222222
((ChromeDriver) driver).deleteNetworkConditions();
223223
driver.quit();
224224
}
225+
226+
@Test
227+
public void castFeatures() {
228+
ChromeDriver driver = new ChromeDriver();
229+
230+
List<Map<String, String>> sinks = driver.getCastSinks();
231+
if (!sinks.isEmpty()) {
232+
String sinkName = sinks.get(0).get("name");
233+
driver.startTabMirroring(sinkName);
234+
driver.stopCasting(sinkName);
235+
}
236+
237+
driver.quit();
238+
}
239+
240+
@Test
241+
public void getBrowserLogs() {
242+
ChromeDriver driver = new ChromeDriver();
243+
driver.get("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html");
244+
WebElement consoleLogButton = driver.findElement(By.id("consoleError"));
245+
consoleLogButton.click();
246+
247+
LogEntries logs = driver.manage().logs().get(LogType.BROWSER);
248+
249+
// Assert that at least one log contains the expected message
250+
boolean logFound = false;
251+
for (LogEntry log : logs) {
252+
if (log.getMessage().contains("I am console error")) {
253+
logFound = true;
254+
break;
255+
}
256+
}
257+
258+
Assertions.assertTrue(logFound, "No matching log message found.");
259+
driver.quit();
260+
}
225261
}

examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java

+40-4
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,24 @@
88
import java.nio.file.Path;
99
import java.nio.file.Paths;
1010
import java.util.List;
11+
import java.util.Map;
1112
import java.util.logging.Level;
1213
import java.util.regex.Pattern;
1314
import org.junit.jupiter.api.AfterEach;
1415
import org.junit.jupiter.api.Assertions;
1516
import org.junit.jupiter.api.Test;
1617
import org.openqa.selenium.By;
1718
import org.openqa.selenium.WebElement;
18-
import org.openqa.selenium.chrome.ChromeDriver;
1919
import org.openqa.selenium.chromium.ChromiumDriverLogLevel;
2020
import org.openqa.selenium.chromium.ChromiumNetworkConditions;
2121
import org.openqa.selenium.edge.EdgeDriver;
2222
import org.openqa.selenium.edge.EdgeDriverService;
2323
import org.openqa.selenium.edge.EdgeOptions;
24-
import org.openqa.selenium.logging.LogEntries;
25-
import org.openqa.selenium.logging.LogType;
26-
import org.openqa.selenium.logging.LoggingPreferences;
24+
import org.openqa.selenium.logging.*;
2725
import org.openqa.selenium.remote.service.DriverFinder;
2826

27+
28+
2929
public class EdgeTest extends BaseTest {
3030
@AfterEach
3131
public void clearProperties() {
@@ -217,4 +217,40 @@ public void setNetworkConditions() {
217217
((EdgeDriver) driver).deleteNetworkConditions();
218218
driver.quit();
219219
}
220+
221+
@Test
222+
public void castFeatures() {
223+
EdgeDriver driver = new EdgeDriver();
224+
225+
List<Map<String, String>> sinks = driver.getCastSinks();
226+
if (!sinks.isEmpty()) {
227+
String sinkName = sinks.get(0).get("name");
228+
driver.startTabMirroring(sinkName);
229+
driver.stopCasting(sinkName);
230+
}
231+
232+
driver.quit();
233+
}
234+
235+
@Test
236+
public void getBrowserLogs() {
237+
EdgeDriver driver = new EdgeDriver();
238+
driver.get("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html");
239+
WebElement consoleLogButton = driver.findElement(By.id("consoleError"));
240+
consoleLogButton.click();
241+
242+
LogEntries logs = driver.manage().logs().get(LogType.BROWSER);
243+
244+
// Assert that at least one log contains the expected message
245+
boolean logFound = false;
246+
for (LogEntry log : logs) {
247+
if (log.getMessage().contains("I am console error")) {
248+
logFound = true;
249+
break;
250+
}
251+
}
252+
253+
Assertions.assertTrue(logFound, "No matching log message found.");
254+
driver.quit();
255+
}
220256
}

examples/python/tests/browsers/test_chrome.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import subprocess
44
import pytest
55
from selenium import webdriver
6-
6+
from selenium.webdriver.common.by import By
77

88
def test_basic_options():
99
options = webdriver.ChromeOptions()
@@ -180,11 +180,11 @@ def test_cast_features():
180180

181181
def test_get_browser_logs():
182182
driver = webdriver.Chrome()
183-
184-
driver.get("https://www.selenium.dev/")
183+
driver.get("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html")
184+
driver.find_element(By.ID, "consoleError").click()
185185

186186
logs = driver.get_log("browser")
187187

188188
# Assert that at least one log contains the expected message
189-
assert any("Uncaught TypeError" in log['message'] for log in logs), "No matching log message found."
189+
assert any("I am console error" in log['message'] for log in logs), "No matching log message found."
190190
driver.quit()

examples/python/tests/browsers/test_edge.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import subprocess
44
import pytest
55
from selenium import webdriver
6-
6+
from selenium.webdriver.common.by import By
77

88
def test_basic_options():
99
options = webdriver.EdgeOptions()
@@ -180,11 +180,11 @@ def test_cast_features():
180180

181181
def test_get_browser_logs():
182182
driver = webdriver.Edge()
183-
184-
driver.get("https://www.selenium.dev/")
183+
driver.get("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html")
184+
driver.find_element(By.ID, "consoleError").click()
185185

186186
logs = driver.get_log("browser")
187187

188188
# Assert that at least one log contains the expected message
189-
assert any("Uncaught TypeError" in log['message'] for log in logs), "No matching log message found."
189+
assert any("I am console error" in log['message'] for log in logs), "No matching log message found."
190190
driver.quit()
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,39 @@
11
from selenium import webdriver
2+
from selenium.webdriver.common.by import By
23

4+
import pytest
5+
6+
7+
def test_interactions():
8+
# Initialize WebDriver
9+
driver = webdriver.Chrome()
10+
driver.implicitly_wait(0.5)
11+
12+
# Navigate to URL
13+
driver.get("https://www.selenium.dev/selenium/web/inputs.html")
14+
15+
# Click on the checkbox
16+
check_input = driver.find_element(By.NAME, "checkbox_input")
17+
check_input.click()
18+
19+
is_checked = check_input.is_selected()
20+
assert is_checked == False
21+
22+
# Handle the email input field
23+
email_input = driver.find_element(By.NAME, "email_input")
24+
email_input.clear() # Clear field
25+
26+
27+
email_input.send_keys(email) # Enter text
28+
29+
# Verify input
30+
data = email_input.get_attribute("value")
31+
assert data == email
32+
33+
# Clear the email input field again
34+
email_input.clear()
35+
data = email_input.get_attribute("value")
36+
assert data == ""
37+
38+
# Quit the driver
39+
driver.quit()
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,71 @@
11
from selenium import webdriver
22

3+
4+
def add_cookie():
5+
driver = webdriver.Chrome()
6+
driver.get("http://www.example.com")
7+
8+
# Adds the cookie into current browser context
9+
driver.add_cookie({"name": "key", "value": "value"})
10+
11+
12+
def get_named_cookie():
13+
driver = webdriver.Chrome()
14+
driver.get("http://www.example.com")
15+
16+
# Adds the cookie into current browser context
17+
driver.add_cookie({"name": "foo", "value": "bar"})
18+
19+
# Get cookie details with named cookie 'foo'
20+
print(driver.get_cookie("foo"))
21+
22+
23+
def get_all_cookies():
24+
driver = webdriver.Chrome()
25+
26+
driver.get("http://www.example.com")
27+
28+
driver.add_cookie({"name": "test1", "value": "cookie1"})
29+
driver.add_cookie({"name": "test2", "value": "cookie2"})
30+
31+
# Get all available cookies
32+
print(driver.get_cookies())
33+
34+
def delete_cookie():
35+
driver = webdriver.Chrome()
36+
37+
driver.get("http://www.example.com")
38+
39+
driver.add_cookie({"name": "test1", "value": "cookie1"})
40+
driver.add_cookie({"name": "test2", "value": "cookie2"})
41+
42+
# Delete cookie with name 'test1'
43+
driver.delete_cookie("test1")
44+
45+
46+
def delete_all_cookies():
47+
driver = webdriver.Chrome()
48+
49+
driver.get("http://www.example.com")
50+
51+
driver.add_cookie({"name": "test1", "value": "cookie1"})
52+
driver.add_cookie({"name": "test2", "value": "cookie2"})
53+
54+
# Delete all cookies
55+
driver.delete_all_cookies()
56+
57+
58+
def same_side_cookie_attr():
59+
driver = webdriver.Chrome()
60+
61+
driver.get("http://www.example.com")
62+
63+
# Adds the cookie into current browser context with sameSite 'Strict' (or) 'Lax'
64+
driver.add_cookie({"name": "foo", "value": "value", "sameSite": "Strict"})
65+
driver.add_cookie({"name": "foo1", "value": "value", "sameSite": "Lax"})
66+
67+
cookie1 = driver.get_cookie("foo")
68+
cookie2 = driver.get_cookie("foo1")
69+
70+
print(cookie1)
71+
print(cookie2)

0 commit comments

Comments
 (0)