From c90585a8dc239198fb4770de16b58250c2b0c512 Mon Sep 17 00:00:00 2001 From: titusfortner Date: Wed, 1 Nov 2023 20:13:00 -0500 Subject: [PATCH 1/4] use driver finder for all binary location --- .github/workflows/dotnet-examples.yml | 31 +- .github/workflows/java-examples.yml | 38 +- .github/workflows/js-examples.yml | 4 +- .github/workflows/kotlin-examples.yml | 4 +- .github/workflows/python-examples.yml | 48 +-- .github/workflows/ruby-examples.yml | 38 +- .../SeleniumDocs/Browsers/ChromeTest.cs | 9 +- .../dotnet/SeleniumDocs/Browsers/EdgeTest.cs | 9 +- .../SeleniumDocs/Browsers/FirefoxTest.cs | 9 +- .../SeleniumDocs/Drivers/ServiceTest.cs | 17 +- .../dotnet/SeleniumDocs/Waits/WaitsTest.cs | 7 +- .../java/dev/selenium/BaseChromeTest.java | 12 +- .../java/dev/selenium/BaseFirefoxTest.java | 10 +- .../src/test/java/dev/selenium/BaseTest.java | 77 +++- .../chrome_devtools/CdpApiTest.java | 18 +- .../dev/selenium/browsers/ChromeTest.java | 343 ++++++++---------- .../java/dev/selenium/browsers/EdgeTest.java | 296 +++++++-------- .../dev/selenium/browsers/FirefoxTest.java | 310 ++++++++-------- .../dev/selenium/drivers/ServiceTest.java | 71 ++-- .../java/dev/selenium/waits/WaitsTest.java | 118 +++--- examples/python/tests/browsers/test_chrome.py | 10 +- examples/python/tests/browsers/test_edge.py | 16 +- .../python/tests/browsers/test_firefox.py | 6 +- .../tests/browsers/test_internet_explorer.py | 6 +- examples/python/tests/conftest.py | 32 +- examples/python/tests/drivers/test_service.py | 9 +- examples/python/tests/waits/test_waits.py | 8 +- examples/ruby/spec/browsers/chrome_spec.rb | 12 +- examples/ruby/spec/browsers/edge_spec.rb | 12 +- examples/ruby/spec/browsers/firefox_spec.rb | 8 +- examples/ruby/spec/drivers/service_spec.rb | 14 +- examples/ruby/spec/spec_helper.rb | 6 - examples/ruby/spec/waits/waits_spec.rb | 7 +- .../chrome_devtools/cdp_api.en.md | 12 +- .../chrome_devtools/cdp_api.ja.md | 12 +- .../chrome_devtools/cdp_api.pt-br.md | 12 +- .../chrome_devtools/cdp_api.zh-cn.md | 12 +- .../webdriver/browsers/chrome.en.md | 42 +-- .../webdriver/browsers/chrome.ja.md | 42 +-- .../webdriver/browsers/chrome.pt-br.md | 42 +-- .../webdriver/browsers/chrome.zh-cn.md | 42 +-- .../webdriver/browsers/edge.en.md | 40 +- .../webdriver/browsers/edge.ja.md | 40 +- .../webdriver/browsers/edge.pt-br.md | 40 +- .../webdriver/browsers/edge.zh-cn.md | 40 +- .../webdriver/browsers/firefox.en.md | 46 +-- .../webdriver/browsers/firefox.ja.md | 46 +-- .../webdriver/browsers/firefox.pt-br.md | 46 +-- .../webdriver/browsers/firefox.zh-cn.md | 46 +-- .../browsers/internet_explorer.en.md | 16 +- .../browsers/internet_explorer.ja.md | 16 +- .../browsers/internet_explorer.pt-br.md | 16 +- .../browsers/internet_explorer.zh-cn.md | 16 +- .../webdriver/drivers/service.en.md | 20 +- .../webdriver/drivers/service.ja.md | 20 +- .../webdriver/drivers/service.pt-br.md | 20 +- .../webdriver/drivers/service.zh-cn.md | 20 +- .../documentation/webdriver/waits.en.md | 24 +- .../documentation/webdriver/waits.ja.md | 24 +- .../documentation/webdriver/waits.pt-br.md | 24 +- .../documentation/webdriver/waits.zh-cn.md | 24 +- 61 files changed, 1189 insertions(+), 1226 deletions(-) diff --git a/.github/workflows/dotnet-examples.yml b/.github/workflows/dotnet-examples.yml index 5a3af9735be6..01af56ae6063 100644 --- a/.github/workflows/dotnet-examples.yml +++ b/.github/workflows/dotnet-examples.yml @@ -30,41 +30,14 @@ jobs: steps: - name: Checkout GitHub repo uses: actions/checkout@v3 - - name: Install Chrome for set binary test - uses: browser-actions/setup-chrome@v1 - with: - chrome-version: stable - id: setup-chrome - - name: Install Edge for set binary test - uses: browser-actions/setup-edge@v1 - with: - edge-version: stable - id: setup-edge - - name: Install Firefox for set binary test - if: matrix.os != 'windows-latest' - uses: browser-actions/setup-firefox@v1 - with: - firefox-version: latest - id: setup-firefox - - name: Set ENV Windows - if: matrix.os == 'windows-latest' - run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> $env:GITHUB_ENV - echo "EDGE_BIN=${{ steps.setup-edge.outputs.edge-path }}" >> $env:GITHUB_ENV - - name: Set ENV Other - if: matrix.os != 'windows-latest' - run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> "$GITHUB_ENV" - echo "EDGE_BIN=${{ steps.setup-edge.outputs.edge-path }}" >> "$GITHUB_ENV" - echo "FF_BIN=${{ steps.setup-firefox.outputs.firefox-path }}" >> "$GITHUB_ENV" - name: Remove driver directories Windows - if: matrix.os == 'windows' + if: matrix.os == 'windows-latest' run: | rm "$env:ChromeWebDriver" -r -v rm "$env:EdgeWebDriver" -r -v rm "$env:GeckoWebDriver" -r -v - name: Remove driver directories Non-Windows - if: matrix.os != 'windows' + if: matrix.os != 'windows-latest' run: | sudo rm -rf $CHROMEWEBDRIVER $EDGEWEBDRIVER $GECKOWEBDRIVER - name: Start Xvfb diff --git a/.github/workflows/java-examples.yml b/.github/workflows/java-examples.yml index 19d3adf172f3..0c68bb1a7371 100644 --- a/.github/workflows/java-examples.yml +++ b/.github/workflows/java-examples.yml @@ -30,48 +30,14 @@ jobs: steps: - name: Checkout GitHub repo uses: actions/checkout@v3 - - name: Install Chrome for set binary test - uses: browser-actions/setup-chrome@v1 - with: - chrome-version: stable - id: setup-chrome - - name: Install Edge for set binary test - uses: browser-actions/setup-edge@v1 - with: - edge-version: stable - id: setup-edge - - name: Install Firefox for set binary test - if: matrix.os != 'windows-latest' - uses: browser-actions/setup-firefox@v1 - with: - firefox-version: latest - id: setup-firefox - - name: Set ENV Windows - if: matrix.os == 'windows-latest' - run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> $env:GITHUB_ENV - echo "EDGE_BIN=C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" >> $env:GITHUB_ENV - echo "FF_BIN=C:\Program Files (x86)\Mozilla Firefox\firefox-browser.exe" >> $env:GITHUB_ENV - - name: Set ENV Mac - if: matrix.os == 'macos-latest' - run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> "$GITHUB_ENV" - echo "EDGE_BIN=/Users/runner/hostedtoolcache/msedge/stable/x64/Contents/MacOS/Microsoft Edge" >> "$GITHUB_ENV" - echo "FF_BIN=/Users/runner/hostedtoolcache/firefox/latest/x64/Contents/MacOS/firefox" >> "$GITHUB_ENV" - - name: Set ENV Linux - if: matrix.os == 'ubuntu-latest' - run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> "$GITHUB_ENV" - echo "EDGE_BIN=/opt/hostedtoolcache/msedge/stable/x64/msedge" >> "$GITHUB_ENV" - echo "FF_BIN=/opt/hostedtoolcache/firefox/latest/x64/firefox" >> "$GITHUB_ENV" - name: Remove driver directories Windows - if: matrix.os == 'windows' + if: matrix.os == 'windows-latest' run: | rm "$env:ChromeWebDriver" -r -v rm "$env:EdgeWebDriver" -r -v rm "$env:GeckoWebDriver" -r -v - name: Remove driver directories Non-Windows - if: matrix.os != 'windows' + if: matrix.os != 'windows-latest' run: | sudo rm -rf $CHROMEWEBDRIVER $EDGEWEBDRIVER $GECKOWEBDRIVER - name: Start Xvfb diff --git a/.github/workflows/js-examples.yml b/.github/workflows/js-examples.yml index 1cf57eeb6cc3..6f655ce8620d 100644 --- a/.github/workflows/js-examples.yml +++ b/.github/workflows/js-examples.yml @@ -65,13 +65,13 @@ jobs: echo "EDGE_BIN=/opt/hostedtoolcache/msedge/stable/x64/msedge" >> "$GITHUB_ENV" echo "FF_BIN=/opt/hostedtoolcache/firefox/latest/x64/firefox" >> "$GITHUB_ENV" - name: Remove driver directories Windows - if: matrix.os == 'windows' + if: matrix.os == 'windows-latest' run: | rm "$env:ChromeWebDriver" -r -v rm "$env:EdgeWebDriver" -r -v rm "$env:GeckoWebDriver" -r -v - name: Remove driver directories Non-Windows - if: matrix.os != 'windows' + if: matrix.os != 'windows-latest' run: | sudo rm -rf $CHROMEWEBDRIVER $EDGEWEBDRIVER $GECKOWEBDRIVER - name: Start Xvfb diff --git a/.github/workflows/kotlin-examples.yml b/.github/workflows/kotlin-examples.yml index fe339d49cecb..fb595ee6ceca 100644 --- a/.github/workflows/kotlin-examples.yml +++ b/.github/workflows/kotlin-examples.yml @@ -65,13 +65,13 @@ jobs: echo "EDGE_BIN=/opt/hostedtoolcache/msedge/stable/x64/msedge" >> "$GITHUB_ENV" echo "FF_BIN=/opt/hostedtoolcache/firefox/latest/x64/firefox" >> "$GITHUB_ENV" - name: Remove driver directories Windows - if: matrix.os == 'windows' + if: matrix.os == 'windows-latest' run: | rm "$env:ChromeWebDriver" -r -v rm "$env:EdgeWebDriver" -r -v rm "$env:GeckoWebDriver" -r -v - name: Remove driver directories Non-Windows - if: matrix.os != 'windows' + if: matrix.os != 'windows-latest' run: | sudo rm -rf $CHROMEWEBDRIVER $EDGEWEBDRIVER $GECKOWEBDRIVER - name: Start Xvfb diff --git a/.github/workflows/python-examples.yml b/.github/workflows/python-examples.yml index 3a8aa1d188a1..dfdd714afe27 100644 --- a/.github/workflows/python-examples.yml +++ b/.github/workflows/python-examples.yml @@ -30,50 +30,16 @@ jobs: steps: - name: Checkout GitHub repo uses: actions/checkout@v3 - - name: Install Chrome for set binary test - uses: browser-actions/setup-chrome@v1 - with: - chrome-version: stable - id: setup-chrome - - name: Install Edge for set binary test - uses: browser-actions/setup-edge@v1 - with: - edge-version: stable - id: setup-edge - - name: Install Firefox for set binary test - if: matrix.os != 'windows-latest' - uses: browser-actions/setup-firefox@v1 - with: - firefox-version: latest - id: setup-firefox - - name: Set ENV Windows + - name: Remove driver directories Windows if: matrix.os == 'windows-latest' run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> $env:GITHUB_ENV - echo "EDGE_BIN=C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" >> $env:GITHUB_ENV - echo "FF_BIN=C:\Program Files (x86)\Mozilla Firefox\firefox-browser.exe" >> $env:GITHUB_ENV - - name: Set ENV Mac - if: matrix.os == 'macos-latest' - run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> "$GITHUB_ENV" - echo "EDGE_BIN=/Users/runner/hostedtoolcache/msedge/stable/x64/Contents/MacOS/Microsoft Edge" >> "$GITHUB_ENV" - echo "FF_BIN=/Users/runner/hostedtoolcache/firefox/latest/x64/Contents/MacOS/firefox" >> "$GITHUB_ENV" - - name: Set ENV Linux - if: matrix.os == 'ubuntu-latest' + rm "$env:ChromeWebDriver" -r -v + rm "$env:EdgeWebDriver" -r -v + rm "$env:GeckoWebDriver" -r -v + - name: Remove driver directories Non-Windows + if: matrix.os != 'windows-latest' run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> "$GITHUB_ENV" - echo "EDGE_BIN=/opt/hostedtoolcache/msedge/stable/x64/msedge" >> "$GITHUB_ENV" - echo "FF_BIN=/opt/hostedtoolcache/firefox/latest/x64/firefox" >> "$GITHUB_ENV" - - name: Remove driver directories Windows - if: matrix.os == 'windows' - run: | - rm "$env:ChromeWebDriver" -r -v - rm "$env:EdgeWebDriver" -r -v - rm "$env:GeckoWebDriver" -r -v - - name: Remove driver directories Non-Windows - if: matrix.os != 'windows' - run: | - sudo rm -rf $CHROMEWEBDRIVER $EDGEWEBDRIVER $GECKOWEBDRIVER + sudo rm -rf $CHROMEWEBDRIVER $EDGEWEBDRIVER $GECKOWEBDRIVER - name: Start Xvfb if: matrix.os == 'ubuntu-latest' run: Xvfb :99 & diff --git a/.github/workflows/ruby-examples.yml b/.github/workflows/ruby-examples.yml index 0d83eb0b2146..6da5b5654bb5 100644 --- a/.github/workflows/ruby-examples.yml +++ b/.github/workflows/ruby-examples.yml @@ -30,48 +30,14 @@ jobs: steps: - name: Checkout GitHub repo uses: actions/checkout@v3 - - name: Install Chrome for set binary test - uses: browser-actions/setup-chrome@v1 - with: - chrome-version: stable - id: setup-chrome - - name: Install Edge for set binary test - uses: browser-actions/setup-edge@v1 - with: - edge-version: stable - id: setup-edge - - name: Install Firefox for set binary test - if: matrix.os != 'windows-latest' - uses: browser-actions/setup-firefox@v1 - with: - firefox-version: latest - id: setup-firefox - - name: Set ENV Windows - if: matrix.os == 'windows-latest' - run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> $env:GITHUB_ENV - echo "EDGE_BIN=C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" >> $env:GITHUB_ENV - echo "FF_BIN=C:\Program Files (x86)\Mozilla Firefox\firefox-browser.exe" >> $env:GITHUB_ENV - - name: Set ENV Mac - if: matrix.os == 'macos-latest' - run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> "$GITHUB_ENV" - echo "EDGE_BIN=/Users/runner/hostedtoolcache/msedge/stable/x64/Contents/MacOS/Microsoft Edge" >> "$GITHUB_ENV" - echo "FF_BIN=/Users/runner/hostedtoolcache/firefox/latest/x64/Contents/MacOS/firefox" >> "$GITHUB_ENV" - - name: Set ENV Linux - if: matrix.os == 'ubuntu-latest' - run: | - echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> "$GITHUB_ENV" - echo "EDGE_BIN=/opt/hostedtoolcache/msedge/stable/x64/msedge" >> "$GITHUB_ENV" - echo "FF_BIN=/opt/hostedtoolcache/firefox/latest/x64/firefox" >> "$GITHUB_ENV" - name: Remove driver directories Windows - if: matrix.os == 'windows' + if: matrix.os == 'windows-latest' run: | rm "$env:ChromeWebDriver" -r -v rm "$env:EdgeWebDriver" -r -v rm "$env:GeckoWebDriver" -r -v - name: Remove driver directories Non-Windows - if: matrix.os != 'windows' + if: matrix.os != 'windows-latest' run: | sudo rm -rf $CHROMEWEBDRIVER $EDGEWEBDRIVER $GECKOWEBDRIVER - name: Start Xvfb diff --git a/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs b/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs index dc265e4336b6..d25b7eb43533 100644 --- a/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs +++ b/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs @@ -171,9 +171,14 @@ private string GetLogLocation() return _logLocation; } - private string GetChromeLocation() + private static string GetChromeLocation() { - return Environment.GetEnvironmentVariable("CHROME_BIN"); + var options = new ChromeOptions + { + BrowserVersion = "stable" + }; + DriverFinder.FullPath(options); + return options.BinaryLocation; } } } \ No newline at end of file diff --git a/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs b/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs index e0c4d135f024..7e1c1a1bd223 100644 --- a/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs +++ b/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs @@ -171,9 +171,14 @@ private string GetLogLocation() return _logLocation; } - private string GetEdgeLocation() + private static string GetEdgeLocation() { - return Environment.GetEnvironmentVariable("EDGE_BIN"); + var options = new EdgeOptions + { + BrowserVersion = "stable" + }; + DriverFinder.FullPath(options); + return options.BinaryLocation; } } } \ No newline at end of file diff --git a/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs b/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs index 1042f0bf12e6..bb23656a3fb7 100644 --- a/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs +++ b/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs @@ -195,9 +195,14 @@ private void SetWaitingDriver() driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(2); } - private string GetFirefoxLocation() + private static string GetFirefoxLocation() { - return Environment.GetEnvironmentVariable("FF_BIN"); + var options = new FirefoxOptions() + { + BrowserVersion = "stable" + }; + DriverFinder.FullPath(options); + return options.BinaryLocation; } } } \ No newline at end of file diff --git a/examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs b/examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs index ae5fa15e669c..f62a8b595737 100644 --- a/examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs +++ b/examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs @@ -21,9 +21,10 @@ public void BasicService() [TestMethod] public void DriverLocation() { - var service = ChromeDriverService.CreateDefaultService(GetDriverLocation()); + var options = GetLatestChromeOptions(); + var service = ChromeDriverService.CreateDefaultService(GetDriverLocation(options)); - driver = new ChromeDriver(service); + driver = new ChromeDriver(service, options); } [TestMethod] @@ -35,9 +36,17 @@ public void DriverPort() driver = new ChromeDriver(service); } - private string GetDriverLocation() + private static string GetDriverLocation(ChromeOptions options) + { + return DriverFinder.FullPath(options); + } + + private static ChromeOptions GetLatestChromeOptions() { - return DriverFinder.FullPath(new ChromeOptions()); + return new ChromeOptions + { + BrowserVersion = "stable" + }; } } } \ No newline at end of file diff --git a/examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs b/examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs index f5b11398688c..8ade99a62f7d 100644 --- a/examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs +++ b/examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs @@ -51,9 +51,9 @@ public void Explicit() { driver.Url = "https://www.selenium.dev/selenium/web/dynamic.html"; IWebElement revealed = driver.FindElement(By.Id("revealed")); - WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(2)); - driver.FindElement(By.Id("reveal")).Click(); + + WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(2)); wait.Until(d => revealed.Displayed); revealed.SendKeys("Displayed"); @@ -65,13 +65,14 @@ public void ExplicitOptions() { driver.Url = "https://www.selenium.dev/selenium/web/dynamic.html"; IWebElement revealed = driver.FindElement(By.Id("revealed")); + driver.FindElement(By.Id("reveal")).Click(); + WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(2)) { PollingInterval = TimeSpan.FromMilliseconds(300), }; wait.IgnoreExceptionTypes(typeof(ElementNotInteractableException)); - driver.FindElement(By.Id("reveal")).Click(); wait.Until(d => { revealed.SendKeys("Displayed"); return true; diff --git a/examples/java/src/test/java/dev/selenium/BaseChromeTest.java b/examples/java/src/test/java/dev/selenium/BaseChromeTest.java index 407ccbafbb90..3537ed35c767 100644 --- a/examples/java/src/test/java/dev/selenium/BaseChromeTest.java +++ b/examples/java/src/test/java/dev/selenium/BaseChromeTest.java @@ -1,15 +1,11 @@ package dev.selenium; import org.junit.jupiter.api.BeforeEach; -import org.openqa.selenium.chrome.ChromeDriver; public class BaseChromeTest extends BaseTest { - @BeforeEach - public void setup() { - System.setProperty("webdriver.chrome.logfile", "chromedriver.log"); - System.setProperty("webdriver.chrome.verboseLogging", "true"); - driver = new ChromeDriver(); - } - + @BeforeEach + public void setup() { + startChromeDriver(); + } } diff --git a/examples/java/src/test/java/dev/selenium/BaseFirefoxTest.java b/examples/java/src/test/java/dev/selenium/BaseFirefoxTest.java index 6f8c66004c3a..084b1910e374 100644 --- a/examples/java/src/test/java/dev/selenium/BaseFirefoxTest.java +++ b/examples/java/src/test/java/dev/selenium/BaseFirefoxTest.java @@ -1,13 +1,11 @@ package dev.selenium; import org.junit.jupiter.api.BeforeEach; -import org.openqa.selenium.firefox.FirefoxDriver; public class BaseFirefoxTest extends BaseTest { - @BeforeEach - public void setup() { - driver = new FirefoxDriver(); - } - + @BeforeEach + public void setup() { + startFirefoxDriver(); + } } diff --git a/examples/java/src/test/java/dev/selenium/BaseTest.java b/examples/java/src/test/java/dev/selenium/BaseTest.java index 56a41689cd02..8727c4756878 100644 --- a/examples/java/src/test/java/dev/selenium/BaseTest.java +++ b/examples/java/src/test/java/dev/selenium/BaseTest.java @@ -1,28 +1,79 @@ package dev.selenium; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; import java.time.Duration; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; -import org.openqa.selenium.firefox.GeckoDriverService; -import org.openqa.selenium.remote.service.DriverService; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.firefox.FirefoxOptions; import org.openqa.selenium.support.ui.WebDriverWait; public class BaseTest { - protected WebDriver driver; - protected WebDriverWait wait; + protected WebDriver driver; + protected WebDriverWait wait; + protected File driverPath; + protected File browserPath; - public WebElement getLocatedElement(WebDriver driver, By by) { - WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); - return wait.until(d -> driver.findElement(by)); + public WebElement getLocatedElement(WebDriver driver, By by) { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + return wait.until(d -> driver.findElement(by)); + } + + protected FirefoxDriver startFirefoxDriver() { + return startFirefoxDriver(new FirefoxOptions()); + } + + protected FirefoxDriver startFirefoxDriver(FirefoxOptions options) { + options.setImplicitWaitTimeout(Duration.ofSeconds(1)); + driver = new FirefoxDriver(options); + return (FirefoxDriver) driver; + } + + protected ChromeDriver startChromeDriver() { + ChromeOptions options = new ChromeOptions(); + options.setImplicitWaitTimeout(Duration.ofSeconds(1)); + return startChromeDriver(options); + } + + protected ChromeDriver startChromeDriver(ChromeOptions options) { + driver = new ChromeDriver(options); + return (ChromeDriver) driver; + } + + protected File getTempDirectory(String prefix) { + File tempDirectory = null; + try { + tempDirectory = Files.createTempDirectory(prefix).toFile(); + } catch (IOException e) { + throw new RuntimeException(e); } + tempDirectory.deleteOnExit(); + + return tempDirectory; + } + + protected File getTempFile(String prefix, String suffix) { + File logLocation = null; + try { + logLocation = File.createTempFile(prefix, suffix); + } catch (IOException e) { + throw new RuntimeException(e); + } + logLocation.deleteOnExit(); + + return logLocation; + } - @AfterEach - public void quit() { - if (driver != null) { - driver.quit(); - } + @AfterEach + public void quit() { + if (driver != null) { + driver.quit(); } + } } diff --git a/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java b/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java index 0e149ff968a6..9a94e2b2932a 100644 --- a/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java +++ b/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java @@ -3,14 +3,22 @@ import com.google.common.collect.ImmutableMap; import dev.selenium.BaseTest; import java.time.Duration; -import java.util.*; +import java.util.Base64; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicBoolean; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.openqa.selenium.*; +import org.openqa.selenium.By; +import org.openqa.selenium.Cookie; +import org.openqa.selenium.JavascriptException; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.devtools.DevTools; @@ -62,6 +70,7 @@ public void setCookie() { } @Test + @Disabled("4.15 broke the casting") public void performanceMetrics() { driver.get("https://www.selenium.dev/selenium/web/frameset.html"); @@ -108,8 +117,8 @@ public void consoleLogs() { CopyOnWriteArrayList logs = new CopyOnWriteArrayList<>(); devTools.addListener( - Runtime.consoleAPICalled(), - event -> logs.add((String) event.getArgs().get(0).getValue().orElse(""))); + Runtime.consoleAPICalled(), + event -> logs.add((String) event.getArgs().get(0).getValue().orElse(""))); driver.findElement(By.id("consoleLog")).click(); @@ -117,7 +126,6 @@ public void consoleLogs() { Assertions.assertEquals("Hello, world!", logs.get(0)); } - @Test public void jsErrors() { driver.get("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html"); diff --git a/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java b/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java index 7a0cfde32200..a9f35e484cad 100644 --- a/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java +++ b/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java @@ -1,11 +1,19 @@ package dev.selenium.browsers; -import com.google.common.collect.ImmutableList; +import dev.selenium.BaseTest; +import java.io.File; +import java.io.IOException; +import java.io.PrintStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.logging.Level; +import java.util.regex.Pattern; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.openqa.selenium.By; -import org.openqa.selenium.Pdf; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeDriverService; @@ -14,192 +22,163 @@ import org.openqa.selenium.logging.LogEntries; import org.openqa.selenium.logging.LogType; import org.openqa.selenium.logging.LoggingPreferences; -import org.openqa.selenium.print.PrintOptions; - -import java.io.*; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Base64; -import java.util.logging.Level; -import java.util.regex.Pattern; - -public class ChromeTest { - private ChromeDriver driver; - private File logLocation; - - @AfterEach - public void quit() { - if (logLocation != null && logLocation.exists()) { - logLocation.delete(); - } - System.clearProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY); - System.clearProperty(ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY); - - driver.quit(); - } - - @Test - public void basicOptions() throws IOException { - ChromeOptions options = new ChromeOptions(); -// options.setExperimentalOption("perfLoggingPrefs", ImmutableMap.of("enableNetwork", true)); - LoggingPreferences logPrefs = new LoggingPreferences(); - logPrefs.enable(LogType.BROWSER, Level.ALL); - logPrefs.enable(LogType.PERFORMANCE, Level.ALL); - options.setCapability(ChromeOptions.LOGGING_PREFS, logPrefs); - - driver = new ChromeDriver(options); - driver.get("https://www.selenium.dev"); - driver.manage().logs().get(LogType.PERFORMANCE).forEach(System.out::println); - - String content = driver.print(new PrintOptions()).getContent(); - byte[] bytes = Base64.getDecoder().decode(content); - Files.write(Paths.get("printed.pdf"), bytes); - } - - @Test - public void arguments() { - ChromeOptions options = new ChromeOptions(); - - options.addArguments("--start-maximized"); - - driver = new ChromeDriver(options); - } - - @Test - public void setBrowserLocation() { - ChromeOptions options = new ChromeOptions(); - - options.setBinary(getChromeLocation()); +import org.openqa.selenium.manager.SeleniumManagerOutput; +import org.openqa.selenium.remote.service.DriverFinder; - driver = new ChromeDriver(options); - } - - @Test - public void extensionOptions() { - ChromeOptions options = new ChromeOptions(); - Path path = Paths.get("src/test/resources/extensions/webextensions-selenium-example.crx"); - File extensionPath = new File(path.toUri()); - - options.addExtensions(extensionPath); - - driver = new ChromeDriver(options); - driver.get("https://www.selenium.dev/selenium/web/blank.html"); - WebElement injected = driver.findElement(By.id("webextensions-selenium-example")); - Assertions.assertEquals("Content injected by webextensions-selenium-example", injected.getText()); - } - - @Test - public void excludeSwitches() { - ChromeOptions options = new ChromeOptions(); - - options.setExperimentalOption("excludeSwitches", ImmutableList.of("disable-popup-blocking")); - - driver = new ChromeDriver(options); - } +public class ChromeTest extends BaseTest { + @AfterEach + public void clearProperties() { + System.clearProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY); + System.clearProperty(ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY); + } - @Test - public void loggingPreferences() { - ChromeOptions options = new ChromeOptions(); - LoggingPreferences logPrefs = new LoggingPreferences(); - logPrefs.enable(LogType.PERFORMANCE, Level.ALL); - options.setCapability(ChromeOptions.LOGGING_PREFS, logPrefs); - - driver = new ChromeDriver(options); - driver.get("https://www.selenium.dev"); - - LogEntries logEntries = driver.manage().logs().get(LogType.PERFORMANCE); - Assertions.assertFalse(logEntries.getAll().isEmpty()); - } - - @Test - public void logsToFile() throws IOException { - ChromeDriverService service = new ChromeDriverService.Builder() - .withLogFile(getLogLocation()) - .build(); - - driver = new ChromeDriver(service); - - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertTrue(fileContent.contains("Starting ChromeDriver")); - } - - @Test - public void logsToConsole() throws IOException { - System.setOut(new PrintStream(getLogLocation())); - - ChromeDriverService service = new ChromeDriverService.Builder() - .withLogOutput(System.out) - .build(); - - driver = new ChromeDriver(service); - - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertTrue(fileContent.contains("Starting ChromeDriver")); - } - - @Test - public void logsWithLevel() throws IOException { - System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY, - getLogLocation().getAbsolutePath()); - - ChromeDriverService service = new ChromeDriverService.Builder() - .withLogLevel(ChromiumDriverLogLevel.DEBUG) - .build(); + @Test + public void basicOptions() { + ChromeOptions options = new ChromeOptions(); + driver = new ChromeDriver(options); + } - driver = new ChromeDriver(service); + @Test + public void arguments() { + ChromeOptions options = new ChromeOptions(); + + options.addArguments("--start-maximized"); - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertTrue(fileContent.contains("[DEBUG]:")); - } + driver = new ChromeDriver(options); + } - @Test - public void configureDriverLogs() throws IOException { - System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY, - getLogLocation().getAbsolutePath()); - System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY, - ChromiumDriverLogLevel.DEBUG.toString()); + @Test + public void setBrowserLocation() { + ChromeOptions options = new ChromeOptions(); - ChromeDriverService service = new ChromeDriverService.Builder() - .withAppendLog(true) - .withReadableTimestamp(true) - .build(); + options.setBinary(getChromeLocation()); - driver = new ChromeDriver(service); - - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Pattern pattern = Pattern.compile("\\[\\d\\d-\\d\\d-\\d\\d\\d\\d", Pattern.CASE_INSENSITIVE); - Assertions.assertTrue(pattern.matcher(fileContent).find()); - } + driver = new ChromeDriver(options); + } - @Test - public void disableBuildChecks() throws IOException { - System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY, - getLogLocation().getAbsolutePath()); - System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY, - ChromiumDriverLogLevel.WARNING.toString()); - - ChromeDriverService service = new ChromeDriverService.Builder() - .withBuildCheckDisabled(true) - .build(); - - driver = new ChromeDriver(service); - - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - String expected = "[WARNING]: You are using an unsupported command-line switch: --disable-build-check"; - Assertions.assertTrue(fileContent.contains(expected)); - } - - private File getLogLocation() throws IOException { - if (logLocation == null || !logLocation.exists()) { - logLocation = File.createTempFile("chromedriver-", ".log"); - } - - return logLocation; - } - - private File getChromeLocation() { - File location = new File(System.getenv("CHROME_BIN")); - return location.exists() ? location : null; - } + @Test + public void extensionOptions() { + ChromeOptions options = new ChromeOptions(); + Path path = Paths.get("src/test/resources/extensions/webextensions-selenium-example.crx"); + File extensionFilePath = new File(path.toUri()); + + options.addExtensions(extensionFilePath); + + driver = new ChromeDriver(options); + driver.get("https://www.selenium.dev/selenium/web/blank.html"); + WebElement injected = driver.findElement(By.id("webextensions-selenium-example")); + Assertions.assertEquals( + "Content injected by webextensions-selenium-example", injected.getText()); + } + + @Test + public void excludeSwitches() { + ChromeOptions options = new ChromeOptions(); + + options.setExperimentalOption("excludeSwitches", List.of("disable-popup-blocking")); + + driver = new ChromeDriver(options); + } + + @Test + public void loggingPreferences() { + ChromeOptions options = new ChromeOptions(); + LoggingPreferences logPrefs = new LoggingPreferences(); + logPrefs.enable(LogType.PERFORMANCE, Level.ALL); + options.setCapability(ChromeOptions.LOGGING_PREFS, logPrefs); + + driver = new ChromeDriver(options); + driver.get("https://www.selenium.dev"); + + LogEntries logEntries = driver.manage().logs().get(LogType.PERFORMANCE); + Assertions.assertFalse(logEntries.getAll().isEmpty()); + } + + @Test + public void logsToFile() throws IOException { + File logLocation = getTempFile("logsToFile", ".log"); + ChromeDriverService service = + new ChromeDriverService.Builder().withLogFile(logLocation).build(); + + driver = new ChromeDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertTrue(fileContent.contains("Starting ChromeDriver")); + } + + @Test + public void logsToConsole() throws IOException { + File logLocation = getTempFile("logsToConsole", ".log"); + System.setOut(new PrintStream(logLocation)); + + ChromeDriverService service = + new ChromeDriverService.Builder().withLogOutput(System.out).build(); + + driver = new ChromeDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertTrue(fileContent.contains("Starting ChromeDriver")); + } + + @Test + public void logsWithLevel() throws IOException { + File logLocation = getTempFile("logsWithLevel", ".log"); + System.setProperty( + ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY, logLocation.getAbsolutePath()); + + ChromeDriverService service = + new ChromeDriverService.Builder().withLogLevel(ChromiumDriverLogLevel.DEBUG).build(); + + driver = new ChromeDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertTrue(fileContent.contains("[DEBUG]:")); + } + + @Test + public void configureDriverLogs() throws IOException { + File logLocation = getTempFile("configureDriverLogs", ".log"); + System.setProperty( + ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY, logLocation.getAbsolutePath()); + System.setProperty( + ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY, + ChromiumDriverLogLevel.DEBUG.toString()); + + ChromeDriverService service = + new ChromeDriverService.Builder().withAppendLog(true).withReadableTimestamp(true).build(); + + driver = new ChromeDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Pattern pattern = Pattern.compile("\\[\\d\\d-\\d\\d-\\d\\d\\d\\d", Pattern.CASE_INSENSITIVE); + Assertions.assertTrue(pattern.matcher(fileContent).find()); + } + + @Test + public void disableBuildChecks() throws IOException { + File logLocation = getTempFile("disableBuildChecks", ".log"); + System.setProperty( + ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY, logLocation.getAbsolutePath()); + System.setProperty( + ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY, + ChromiumDriverLogLevel.WARNING.toString()); + + ChromeDriverService service = + new ChromeDriverService.Builder().withBuildCheckDisabled(true).build(); + + driver = new ChromeDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + String expected = + "[WARNING]: You are using an unsupported command-line switch: --disable-build-check"; + Assertions.assertTrue(fileContent.contains(expected)); + } + + private File getChromeLocation() { + ChromeOptions options = new ChromeOptions(); + options.setBrowserVersion("stable"); + SeleniumManagerOutput.Result output = + DriverFinder.getPath(ChromeDriverService.createDefaultService(), options); + return new File(output.getBrowserPath()); + } } diff --git a/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java b/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java index a61f9dc943af..071dd4f871fb 100644 --- a/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java +++ b/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java @@ -1,6 +1,15 @@ package dev.selenium.browsers; -import com.google.common.collect.ImmutableList; +import dev.selenium.BaseTest; +import java.io.File; +import java.io.IOException; +import java.io.PrintStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.logging.Level; +import java.util.regex.Pattern; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -10,165 +19,160 @@ import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.edge.EdgeDriverService; import org.openqa.selenium.edge.EdgeOptions; +import org.openqa.selenium.logging.LogEntries; +import org.openqa.selenium.logging.LogType; +import org.openqa.selenium.logging.LoggingPreferences; +import org.openqa.selenium.manager.SeleniumManagerOutput; +import org.openqa.selenium.remote.service.DriverFinder; -import java.io.File; -import java.io.IOException; -import java.io.PrintStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.regex.Pattern; - -public class EdgeTest { - private EdgeDriver driver; - private File logLocation; - - @AfterEach - public void quit() { - if (logLocation != null && logLocation.exists()) { - logLocation.delete(); - } - System.clearProperty(EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY); - System.clearProperty(EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY); - - driver.quit(); - } - - @Test - public void basicOptions() { - EdgeOptions options = new EdgeOptions(); - driver = new EdgeDriver(options); - } - - @Test - public void arguments() { - EdgeOptions options = new EdgeOptions(); - - options.addArguments("--start-maximized"); - - driver = new EdgeDriver(options); - } - - @Test - public void setBrowserLocation() { - EdgeOptions options = new EdgeOptions(); - - options.setBinary(getEdgeLocation()); - - driver = new EdgeDriver(options); - } - - @Test - public void extensionOptions() { - EdgeOptions options = new EdgeOptions(); - Path path = Paths.get("src/test/resources/extensions/webextensions-selenium-example.crx"); - File extensionPath = new File(path.toUri()); - - options.addExtensions(extensionPath); - - driver = new EdgeDriver(options); - driver.get("https://www.selenium.dev/selenium/web/blank.html"); - WebElement injected = driver.findElement(By.id("webextensions-selenium-example")); - Assertions.assertEquals("Content injected by webextensions-selenium-example", injected.getText()); - } - - @Test - public void excludeSwitches() { - EdgeOptions options = new EdgeOptions(); - - options.setExperimentalOption("excludeSwitches", ImmutableList.of("disable-popup-blocking")); - - driver = new EdgeDriver(options); - } - - @Test - public void logsToFile() throws IOException { - EdgeDriverService service = new EdgeDriverService.Builder() - .withLogFile(getLogLocation()) - .build(); - - driver = new EdgeDriver(service); - - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertTrue(fileContent.contains("Starting Microsoft Edge WebDriver")); - } - - @Test - public void logsToConsole() throws IOException { - System.setOut(new PrintStream(getLogLocation())); - - EdgeDriverService service = new EdgeDriverService.Builder() - .withLogOutput(System.out) - .build(); +public class EdgeTest extends BaseTest { + @AfterEach + public void clearProperties() { + System.clearProperty(EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY); + System.clearProperty(EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY); + } - driver = new EdgeDriver(service); + @Test + public void basicOptions() { + EdgeOptions options = new EdgeOptions(); + driver = new EdgeDriver(options); + } - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertTrue(fileContent.contains("Starting Microsoft Edge WebDriver")); - } + @Test + public void arguments() { + EdgeOptions options = new EdgeOptions(); - @Test - public void logsWithLevel() throws IOException { - System.setProperty(EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY, - getLogLocation().getAbsolutePath()); + options.addArguments("--start-maximized"); - EdgeDriverService service = new EdgeDriverService.Builder() - .withLoglevel(ChromiumDriverLogLevel.DEBUG) - .build(); + driver = new EdgeDriver(options); + } - driver = new EdgeDriver(service); + @Test + public void setBrowserLocation() { + EdgeOptions options = new EdgeOptions(); - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertTrue(fileContent.contains("[DEBUG]:")); - } + options.setBinary(getEdgeLocation()); - @Test - public void configureDriverLogs() throws IOException { - System.setProperty(EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY, - getLogLocation().getAbsolutePath()); - System.setProperty(EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY, - ChromiumDriverLogLevel.DEBUG.toString()); + driver = new EdgeDriver(options); + } + + @Test + public void extensionOptions() { + EdgeOptions options = new EdgeOptions(); + Path path = Paths.get("src/test/resources/extensions/webextensions-selenium-example.crx"); + File extensionFilePath = new File(path.toUri()); - EdgeDriverService service = new EdgeDriverService.Builder() - .withAppendLog(true) - .withReadableTimestamp(true) - .build(); + options.addExtensions(extensionFilePath); - driver = new EdgeDriver(service); + driver = new EdgeDriver(options); + driver.get("https://www.selenium.dev/selenium/web/blank.html"); + WebElement injected = driver.findElement(By.id("webextensions-selenium-example")); + Assertions.assertEquals( + "Content injected by webextensions-selenium-example", injected.getText()); + } + + @Test + public void excludeSwitches() { + EdgeOptions options = new EdgeOptions(); + + options.setExperimentalOption("excludeSwitches", List.of("disable-popup-blocking")); + + driver = new EdgeDriver(options); + } + + @Test + public void loggingPreferences() { + EdgeOptions options = new EdgeOptions(); + LoggingPreferences logPrefs = new LoggingPreferences(); + logPrefs.enable(LogType.PERFORMANCE, Level.ALL); + options.setCapability(EdgeOptions.LOGGING_PREFS, logPrefs); + + driver = new EdgeDriver(options); + driver.get("https://www.selenium.dev"); + + LogEntries logEntries = driver.manage().logs().get(LogType.PERFORMANCE); + Assertions.assertFalse(logEntries.getAll().isEmpty()); + } + + @Test + public void logsToFile() throws IOException { + File logLocation = getTempFile("logsToFile", ".log"); + EdgeDriverService service = new EdgeDriverService.Builder().withLogFile(logLocation).build(); + + driver = new EdgeDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertTrue(fileContent.contains("Starting Microsoft Edge WebDriver")); + } + + @Test + public void logsToConsole() throws IOException { + File logLocation = getTempFile("logsToConsole", ".log"); + System.setOut(new PrintStream(logLocation)); + + EdgeDriverService service = new EdgeDriverService.Builder().withLogOutput(System.out).build(); + + driver = new EdgeDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertTrue(fileContent.contains("Starting Microsoft Edge WebDriver")); + } + + @Test + public void logsWithLevel() throws IOException { + File logLocation = getTempFile("logsWithLevel", ".log"); + System.setProperty(EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY, logLocation.getAbsolutePath()); + + EdgeDriverService service = + new EdgeDriverService.Builder().withLoglevel(ChromiumDriverLogLevel.DEBUG).build(); + + driver = new EdgeDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertTrue(fileContent.contains("[DEBUG]:")); + } - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Pattern pattern = Pattern.compile("\\[\\d\\d-\\d\\d-\\d\\d\\d\\d", Pattern.CASE_INSENSITIVE); - Assertions.assertTrue(pattern.matcher(fileContent).find()); - } + @Test + public void configureDriverLogs() throws IOException { + File logLocation = getTempFile("configureDriverLogs", ".log"); + System.setProperty(EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY, logLocation.getAbsolutePath()); + System.setProperty( + EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY, ChromiumDriverLogLevel.DEBUG.toString()); - @Test - public void disableBuildChecks() throws IOException { - System.setProperty(EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY, - getLogLocation().getAbsolutePath()); - System.setProperty(EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY, - ChromiumDriverLogLevel.WARNING.toString()); + EdgeDriverService service = + new EdgeDriverService.Builder().withAppendLog(true).withReadableTimestamp(true).build(); - EdgeDriverService service = new EdgeDriverService.Builder() - .withBuildCheckDisabled(true) - .build(); + driver = new EdgeDriver(service); - driver = new EdgeDriver(service); + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Pattern pattern = Pattern.compile("\\[\\d\\d-\\d\\d-\\d\\d\\d\\d", Pattern.CASE_INSENSITIVE); + Assertions.assertTrue(pattern.matcher(fileContent).find()); + } - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - String expected = "[WARNING]: You are using an unsupported command-line switch: --disable-build-check"; - Assertions.assertTrue(fileContent.contains(expected)); - } - - private File getLogLocation() throws IOException { - if (logLocation == null || !logLocation.exists()) { - logLocation = File.createTempFile("msedgedriver-", ".log"); - } + @Test + public void disableBuildChecks() throws IOException { + File logLocation = getTempFile("disableBuildChecks", ".log"); + System.setProperty(EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY, logLocation.getAbsolutePath()); + System.setProperty( + EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY, + ChromiumDriverLogLevel.WARNING.toString()); + + EdgeDriverService service = + new EdgeDriverService.Builder().withBuildCheckDisabled(true).build(); + + driver = new EdgeDriver(service); - return logLocation; - } - - private File getEdgeLocation() { - File location = new File(System.getenv("EDGE_BIN")); - return location.exists() ? location : null; - } + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + String expected = + "[WARNING]: You are using an unsupported command-line switch: --disable-build-check"; + Assertions.assertTrue(fileContent.contains(expected)); + } + + private File getEdgeLocation() { + EdgeOptions options = new EdgeOptions(); + options.setBrowserVersion("stable"); + SeleniumManagerOutput.Result output = + DriverFinder.getPath(EdgeDriverService.createDefaultService(), options); + return new File(output.getBrowserPath()); + } } diff --git a/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java b/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java index a395f51de13c..77a1db789971 100644 --- a/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java +++ b/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java @@ -1,6 +1,12 @@ package dev.selenium.browsers; import dev.selenium.BaseTest; +import java.io.File; +import java.io.IOException; +import java.io.PrintStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -8,189 +14,159 @@ import org.junit.jupiter.api.condition.OS; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; -import org.openqa.selenium.firefox.*; - -import java.io.File; -import java.io.IOException; -import java.io.PrintStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.time.Duration; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.firefox.FirefoxDriverLogLevel; +import org.openqa.selenium.firefox.FirefoxDriverService; +import org.openqa.selenium.firefox.FirefoxOptions; +import org.openqa.selenium.firefox.GeckoDriverService; +import org.openqa.selenium.manager.SeleniumManagerOutput; +import org.openqa.selenium.remote.service.DriverFinder; public class FirefoxTest extends BaseTest { - private FirefoxDriver driver; - private File logLocation; - private File tempDirectory; - - @AfterEach - public void quit() { - if (logLocation != null && logLocation.exists()) { - logLocation.delete(); - } - if (tempDirectory != null && tempDirectory.exists()) { - tempDirectory.delete(); - } - System.clearProperty(GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY); - System.clearProperty(GeckoDriverService.GECKO_DRIVER_LOG_LEVEL_PROPERTY); + private FirefoxDriver driver; + + @AfterEach + public void clearProperties() { + System.clearProperty(GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY); + System.clearProperty(GeckoDriverService.GECKO_DRIVER_LOG_LEVEL_PROPERTY); + } + + @Test + public void basicOptions() { + FirefoxOptions options = new FirefoxOptions(); + driver = new FirefoxDriver(options); + } + + @Test + public void arguments() { + FirefoxOptions options = new FirefoxOptions(); + + options.addArguments("-headless"); + + driver = new FirefoxDriver(options); + } + + @Test + @DisabledOnOs(OS.WINDOWS) + public void setBrowserLocation() { + FirefoxOptions options = new FirefoxOptions(); + + options.setBinary(getFirefoxLocation()); + + driver = new FirefoxDriver(options); + } + + @Test + public void logsToFile() throws IOException { + File logLocation = getTempFile("logsToFile", ".log"); + FirefoxDriverService service = + new GeckoDriverService.Builder().withLogFile(logLocation).build(); + + driver = new FirefoxDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertTrue(fileContent.contains("geckodriver INFO Listening on")); + } + + @Test + public void logsToConsole() throws IOException { + File logLocation = getTempFile("logsToConsole", ".log"); + System.setOut(new PrintStream(logLocation)); + + FirefoxDriverService service = + new GeckoDriverService.Builder().withLogOutput(System.out).build(); + + driver = new FirefoxDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertTrue(fileContent.contains("geckodriver INFO Listening on")); + } + + @Test + public void logsWithLevel() throws IOException { + File logLocation = getTempFile("logsWithLevel", ".log"); + System.setProperty(GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY, logLocation.getAbsolutePath()); + + FirefoxDriverService service = + new GeckoDriverService.Builder().withLogLevel(FirefoxDriverLogLevel.DEBUG).build(); + + driver = new FirefoxDriver(service); + + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertTrue(fileContent.contains("Marionette\tDEBUG")); + } - driver.quit(); - } + @Test + public void stopsTruncatingLogs() throws IOException { + File logLocation = getTempFile("geckodriver-", "log"); + System.setProperty(GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY, logLocation.getAbsolutePath()); + System.setProperty( + GeckoDriverService.GECKO_DRIVER_LOG_LEVEL_PROPERTY, FirefoxDriverLogLevel.DEBUG.toString()); - @Test - public void basicOptions() { - FirefoxOptions options = new FirefoxOptions(); - driver = new FirefoxDriver(options); - } - - @Test - public void arguments() { - FirefoxOptions options = new FirefoxOptions(); - - options.addArguments("-headless"); - - driver = new FirefoxDriver(options); - } + FirefoxDriverService service = + new GeckoDriverService.Builder().withTruncatedLogs(false).build(); - @Test - @DisabledOnOs(OS.WINDOWS) - public void setBrowserLocation() { - FirefoxOptions options = new FirefoxOptions(); + driver = new FirefoxDriver(service); - options.setBinary(getFirefoxLocation()); - - driver = new FirefoxDriver(options); - } + String fileContent = new String(Files.readAllBytes(logLocation.toPath())); + Assertions.assertFalse(fileContent.contains(" ... ")); + } - @Test - public void logsToFile() throws IOException { - FirefoxDriverService service = new GeckoDriverService.Builder() - .withLogFile(getLogLocation()) - .build(); + @Test + public void setProfileLocation() { + File profileDirectory = getTempDirectory("profile-"); + FirefoxDriverService service = + new GeckoDriverService.Builder().withProfileRoot(profileDirectory).build(); - driver = new FirefoxDriver(service); + driver = new FirefoxDriver(service); - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertTrue(fileContent.contains("geckodriver INFO Listening on")); - } + String location = (String) driver.getCapabilities().getCapability("moz:profile"); + Assertions.assertTrue(location.contains(profileDirectory.getAbsolutePath())); + } - @Test - public void logsToConsole() throws IOException { - System.setOut(new PrintStream(getLogLocation())); + @Test + public void installAddon() { + driver = startFirefoxDriver(); + Path xpiPath = Paths.get("src/test/resources/extensions/selenium-example.xpi"); - FirefoxDriverService service = new GeckoDriverService.Builder() - .withLogOutput(System.out) - .build(); - - driver = new FirefoxDriver(service); - - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertTrue(fileContent.contains("geckodriver INFO Listening on")); - } - - @Test - public void logsWithLevel() throws IOException { - System.setProperty(GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY, - getLogLocation().getAbsolutePath()); - - FirefoxDriverService service = new GeckoDriverService.Builder() - .withLogLevel(FirefoxDriverLogLevel.DEBUG) - .build(); - - driver = new FirefoxDriver(service); - - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertTrue(fileContent.contains("Marionette\tDEBUG")); - } - - @Test - public void stopsTruncatingLogs() throws IOException { - System.setProperty(GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY, - getLogLocation().getAbsolutePath()); - System.setProperty(GeckoDriverService.GECKO_DRIVER_LOG_LEVEL_PROPERTY, - FirefoxDriverLogLevel.DEBUG.toString()); - - FirefoxDriverService service = new GeckoDriverService.Builder() - .withTruncatedLogs(false) - .build(); - - driver = new FirefoxDriver(service); - - String fileContent = new String(Files.readAllBytes(getLogLocation().toPath())); - Assertions.assertFalse(fileContent.contains(" ... ")); - } - - @Test - public void setProfileLocation() throws IOException { - FirefoxDriverService service = new GeckoDriverService.Builder() - .withProfileRoot(getTempDirectory()) - .build(); - - driver = new FirefoxDriver(service); - - String location = (String) driver.getCapabilities().getCapability("moz:profile"); - Assertions.assertTrue(location.contains(getTempDirectory().getAbsolutePath())); - } + driver.installExtension(xpiPath); - @Test - public void installAddon() { - driver = startDriver(); - Path xpiPath = Paths.get("src/test/resources/extensions/selenium-example.xpi"); + driver.get("https://www.selenium.dev/selenium/web/blank.html"); + WebElement injected = driver.findElement(By.id("webextensions-selenium-example")); + Assertions.assertEquals( + "Content injected by webextensions-selenium-example", injected.getText()); + } - driver.installExtension(xpiPath); + @Test + public void uninstallAddon() { + driver = startFirefoxDriver(); + Path xpiPath = Paths.get("src/test/resources/extensions/selenium-example.xpi"); + String id = driver.installExtension(xpiPath); - driver.get("https://www.selenium.dev/selenium/web/blank.html"); - WebElement injected = driver.findElement(By.id("webextensions-selenium-example")); - Assertions.assertEquals("Content injected by webextensions-selenium-example", injected.getText()); - } + driver.uninstallExtension(id); - @Test - public void uninstallAddon() { - driver = startDriver(); - Path xpiPath = Paths.get("src/test/resources/extensions/selenium-example.xpi"); - String id = driver.installExtension(xpiPath); - - driver.uninstallExtension(id); + driver.get("https://www.selenium.dev/selenium/web/blank.html"); + Assertions.assertEquals(driver.findElements(By.id("webextensions-selenium-example")).size(), 0); + } - driver.get("https://www.selenium.dev/selenium/web/blank.html"); - Assertions.assertEquals(driver.findElements(By.id("webextensions-selenium-example")).size(), 0); - } + @Test + public void installUnsignedAddonPath() { + driver = startFirefoxDriver(); + Path path = Paths.get("src/test/resources/extensions/selenium-example"); + + driver.installExtension(path, true); - @Test - public void installUnsignedAddonPath() { - driver = startDriver(); - Path path = Paths.get("src/test/resources/extensions/selenium-example"); - - driver.installExtension(path, true); - - driver.get("https://www.selenium.dev/selenium/web/blank.html"); - WebElement injected = getLocatedElement(driver, By.id("webextensions-selenium-example")); - Assertions.assertEquals("Content injected by webextensions-selenium-example", injected.getText()); - } + driver.get("https://www.selenium.dev/selenium/web/blank.html"); + WebElement injected = getLocatedElement(driver, By.id("webextensions-selenium-example")); + Assertions.assertEquals( + "Content injected by webextensions-selenium-example", injected.getText()); + } - private File getLogLocation() throws IOException { - if (logLocation == null || !logLocation.exists()) { - logLocation = File.createTempFile("geckodriver-", ".log"); - } - - return logLocation; - } - - private File getTempDirectory() throws IOException { - if (tempDirectory == null || !tempDirectory.exists()) { - tempDirectory = Files.createTempDirectory("profile-").toFile(); - } - - return tempDirectory; - } - - private FirefoxDriver startDriver() { - FirefoxOptions options = new FirefoxOptions(); - options.setImplicitWaitTimeout(Duration.ofSeconds(1)); - return new FirefoxDriver(options); - } - - private String getFirefoxLocation() { - return System.getenv("FF_BIN"); - } + private Path getFirefoxLocation() { + FirefoxOptions options = new FirefoxOptions(); + options.setBrowserVersion("stable"); + SeleniumManagerOutput.Result output = + DriverFinder.getPath(GeckoDriverService.createDefaultService(), options); + return Path.of(output.getBrowserPath()); + } } diff --git a/examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java b/examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java index 291e894e1c56..e343e6e7b8b0 100644 --- a/examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java +++ b/examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java @@ -1,7 +1,7 @@ package dev.selenium.drivers; import dev.selenium.BaseTest; -import org.junit.jupiter.api.AfterEach; +import java.io.File; import org.junit.jupiter.api.Test; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeDriverService; @@ -9,41 +9,38 @@ import org.openqa.selenium.manager.SeleniumManagerOutput; import org.openqa.selenium.remote.service.DriverFinder; -import java.io.File; - public class ServiceTest extends BaseTest { - public File getDriverLocation() { - SeleniumManagerOutput.Result location = DriverFinder.getPath(ChromeDriverService.createDefaultService(), new ChromeOptions()); - return new File(location.getDriverPath()); - } - - @AfterEach - public void quit() { - driver.quit(); - } - - @Test - public void defaultService() { - ChromeDriverService service = new ChromeDriverService.Builder() - .build(); - driver = new ChromeDriver(service); - } - - @Test - public void setDriverLocation() { - ChromeDriverService service = new ChromeDriverService.Builder() - .usingDriverExecutable(getDriverLocation()) - .build(); - - driver = new ChromeDriver(service); - } - - @Test - public void setPort() { - ChromeDriverService service = new ChromeDriverService.Builder() - .usingPort(1234) - .build(); - - driver = new ChromeDriver(service); - } + @Test + public void defaultService() { + ChromeDriverService service = new ChromeDriverService.Builder().build(); + driver = new ChromeDriver(service); + } + + @Test + public void setDriverLocation() { + setBinaryPaths(); + ChromeOptions options = new ChromeOptions(); + options.setBinary(browserPath); + + ChromeDriverService service = + new ChromeDriverService.Builder().usingDriverExecutable(driverPath).build(); + + driver = new ChromeDriver(service, options); + } + + @Test + public void setPort() { + ChromeDriverService service = new ChromeDriverService.Builder().usingPort(1234).build(); + + driver = new ChromeDriver(service); + } + + private void setBinaryPaths() { + ChromeOptions options = new ChromeOptions(); + options.setBrowserVersion("stable"); + SeleniumManagerOutput.Result location = + DriverFinder.getPath(ChromeDriverService.createDefaultService(), options); + driverPath = new File(location.getDriverPath()); + browserPath = new File(location.getBrowserPath()); + } } diff --git a/examples/java/src/test/java/dev/selenium/waits/WaitsTest.java b/examples/java/src/test/java/dev/selenium/waits/WaitsTest.java index eb48ff2d8f1a..de6347620b74 100644 --- a/examples/java/src/test/java/dev/selenium/waits/WaitsTest.java +++ b/examples/java/src/test/java/dev/selenium/waits/WaitsTest.java @@ -1,84 +1,96 @@ package dev.selenium.waits; -import dev.selenium.BaseChromeTest; +import dev.selenium.BaseTest; +import java.time.Duration; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.openqa.selenium.By; import org.openqa.selenium.ElementNotInteractableException; -import org.openqa.selenium.Keys; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; -import org.openqa.selenium.interactions.Actions; -import org.openqa.selenium.remote.RemoteWebDriver; +import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.support.ui.FluentWait; import org.openqa.selenium.support.ui.Wait; import org.openqa.selenium.support.ui.WebDriverWait; -import java.time.Duration; +public class WaitsTest extends BaseTest { + @Test + public void fails() { + startChromeDriver(new ChromeOptions()); -public class WaitsTest extends BaseChromeTest { - @Test - public void fails() { - driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); - driver.findElement(By.id("adder")).click(); + driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); + driver.findElement(By.id("adder")).click(); - Assertions.assertThrows(NoSuchElementException.class, () -> { - driver.findElement(By.id("box0")); + Assertions.assertThrows( + NoSuchElementException.class, + () -> { + driver.findElement(By.id("box0")); }); - } + } + + @Test + public void sleep() throws InterruptedException { + startChromeDriver(new ChromeOptions()); + + driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); + driver.findElement(By.id("adder")).click(); + + Thread.sleep(1000); + + WebElement added = driver.findElement(By.id("box0")); + + Assertions.assertEquals("redbox", added.getDomAttribute("class")); + } - @Test - public void sleep() throws InterruptedException { - driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); - driver.findElement(By.id("adder")).click(); + @Test + public void implicit() { + startChromeDriver(new ChromeOptions()); - Thread.sleep(1000); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2)); + driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); + driver.findElement(By.id("adder")).click(); - WebElement added = driver.findElement(By.id("box0")); + WebElement added = driver.findElement(By.id("box0")); - Assertions.assertEquals("redbox", added.getDomAttribute("class")); - } + Assertions.assertEquals("redbox", added.getDomAttribute("class")); + } - @Test - public void implicit() { - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2)); - driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); - driver.findElement(By.id("adder")).click(); + @Test + public void explicit() { + startChromeDriver(new ChromeOptions()); - WebElement added = driver.findElement(By.id("box0")); + driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); + WebElement revealed = driver.findElement(By.id("revealed")); + driver.findElement(By.id("reveal")).click(); - Assertions.assertEquals("redbox", added.getDomAttribute("class")); - } + Wait wait = new WebDriverWait(driver, Duration.ofSeconds(2)); + wait.until(d -> revealed.isDisplayed()); - @Test - public void explicit() { - driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); - WebElement revealed = driver.findElement(By.id("revealed")); - Wait wait = new WebDriverWait(driver, Duration.ofSeconds(2)); + revealed.sendKeys("Displayed"); + Assertions.assertEquals("Displayed", revealed.getDomProperty("value")); + } - driver.findElement(By.id("reveal")).click(); - wait.until(d -> revealed.isDisplayed()); + @Test + public void explicitWithOptions() { + startChromeDriver(new ChromeOptions()); - revealed.sendKeys("Displayed"); - Assertions.assertEquals("Displayed", revealed.getDomProperty("value")); - } + driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); + WebElement revealed = driver.findElement(By.id("revealed")); + driver.findElement(By.id("reveal")).click(); - @Test - public void explicitWithOptions() { - driver.get("https://www.selenium.dev/selenium/web/dynamic.html"); - WebElement revealed = driver.findElement(By.id("revealed")); - Wait wait = new FluentWait<>(driver) - .withTimeout(Duration.ofSeconds(2)) - .pollingEvery(Duration.ofMillis(300)) - .ignoring(ElementNotInteractableException.class); + Wait wait = + new FluentWait<>(driver) + .withTimeout(Duration.ofSeconds(2)) + .pollingEvery(Duration.ofMillis(300)) + .ignoring(ElementNotInteractableException.class); - driver.findElement(By.id("reveal")).click(); - wait.until(d -> { - revealed.sendKeys("Displayed"); - return true; + wait.until( + d -> { + revealed.sendKeys("Displayed"); + return true; }); - Assertions.assertEquals("Displayed", revealed.getDomProperty("value")); - } + Assertions.assertEquals("Displayed", revealed.getDomProperty("value")); + } } diff --git a/examples/python/tests/browsers/test_chrome.py b/examples/python/tests/browsers/test_chrome.py index 5f29881e8511..5bf81e3fca26 100644 --- a/examples/python/tests/browsers/test_chrome.py +++ b/examples/python/tests/browsers/test_chrome.py @@ -4,8 +4,6 @@ from selenium import webdriver -CHROME_LOCATION = os.getenv("CHROME_BIN") - def test_basic_options(): options = webdriver.ChromeOptions() @@ -25,10 +23,10 @@ def test_args(): driver.quit() -def test_set_browser_location(): +def test_set_browser_location(chrome_bin): options = webdriver.ChromeOptions() - options.binary_location = CHROME_LOCATION + options.binary_location = chrome_bin driver = webdriver.Chrome(options=options) @@ -37,9 +35,9 @@ def test_set_browser_location(): def test_add_extension(): options = webdriver.ChromeOptions() - path = os.path.abspath("tests/extensions/webextensions-selenium-example.crx") + extension_file_path = os.path.abspath("tests/extensions/webextensions-selenium-example.crx") - options.add_extension(path) + options.add_extension(extension_file_path) driver = webdriver.Chrome(options=options) driver.get("https://www.selenium.dev/selenium/web/blank.html") diff --git a/examples/python/tests/browsers/test_edge.py b/examples/python/tests/browsers/test_edge.py index 0e160a249043..ac0224ebd66c 100644 --- a/examples/python/tests/browsers/test_edge.py +++ b/examples/python/tests/browsers/test_edge.py @@ -2,11 +2,8 @@ import re import subprocess -import pytest from selenium import webdriver -EDGE_LOCATION = os.getenv("EDGE_BIN") - def test_basic_options(): options = webdriver.EdgeOptions() @@ -26,10 +23,10 @@ def test_args(): driver.quit() -def test_set_browser_location(): +def test_set_browser_location(edge_bin): options = webdriver.EdgeOptions() - options.binary_location = EDGE_LOCATION + options.binary_location = edge_bin driver = webdriver.Edge(options=options) @@ -38,9 +35,9 @@ def test_set_browser_location(): def test_add_extension(): options = webdriver.EdgeOptions() - path = os.path.abspath("tests/extensions/webextensions-selenium-example.crx") + extension_file_path = os.path.abspath("tests/extensions/webextensions-selenium-example.crx") - options.add_extension(path) + options.add_extension(extension_file_path) driver = webdriver.Edge(options=options) driver.get("https://www.selenium.dev/selenium/web/blank.html") @@ -50,6 +47,7 @@ def test_add_extension(): def test_keep_browser_open(): options = webdriver.EdgeOptions() + options.add_experimental_option("detach", True) driver = webdriver.Edge(options=options) @@ -60,6 +58,7 @@ def test_keep_browser_open(): def test_exclude_switches(): options = webdriver.EdgeOptions() + options.add_experimental_option('excludeSwitches', ['disable-popup-blocking']) driver = webdriver.Edge(options=options) @@ -79,7 +78,6 @@ def test_log_to_file(log_path): driver.quit() -@pytest.mark.skip(reason="this is not supported, yet") def test_log_to_stdout(capfd): service = webdriver.EdgeService(log_output=subprocess.STDOUT) @@ -108,7 +106,7 @@ def test_log_features(log_path): driver = webdriver.Edge(service=service) with open(log_path, 'r') as f: - assert re.match("\[\d\d-\d\d-\d\d\d\d", f.read()) + assert re.match(r"\[\d\d-\d\d-\d\d\d\d", f.read()) driver.quit() diff --git a/examples/python/tests/browsers/test_firefox.py b/examples/python/tests/browsers/test_firefox.py index c2dabed82643..925bd5e457fb 100644 --- a/examples/python/tests/browsers/test_firefox.py +++ b/examples/python/tests/browsers/test_firefox.py @@ -5,8 +5,6 @@ import pytest from selenium import webdriver -FIREFOX_LOCATION = os.getenv("FF_BIN") - def test_basic_options(): options = webdriver.FirefoxOptions() @@ -24,10 +22,10 @@ def test_arguments(): driver.quit() -def test_set_browser_location(): +def test_set_browser_location(firefox_bin): options = webdriver.FirefoxOptions() - options.binary_location = FIREFOX_LOCATION + options.binary_location = firefox_bin driver = webdriver.Firefox(options=options) diff --git a/examples/python/tests/browsers/test_internet_explorer.py b/examples/python/tests/browsers/test_internet_explorer.py index 017ed1da61d1..c3efd343cdf6 100644 --- a/examples/python/tests/browsers/test_internet_explorer.py +++ b/examples/python/tests/browsers/test_internet_explorer.py @@ -5,14 +5,12 @@ import pytest from selenium import webdriver -EDGE_LOCATION = os.getenv("EDGE_BIN") - @pytest.mark.skipif(sys.platform != "win32", reason="requires Windows") -def test_basic_options_win10(): +def test_basic_options_win10(edge_bin): options = webdriver.IeOptions() options.attach_to_edge_chrome = True - options.edge_executable_path = EDGE_LOCATION + options.edge_executable_path = edge_bin driver = webdriver.Ie(options=options) driver.quit() diff --git a/examples/python/tests/conftest.py b/examples/python/tests/conftest.py index 56a61ea466f8..c385cf87754a 100644 --- a/examples/python/tests/conftest.py +++ b/examples/python/tests/conftest.py @@ -17,10 +17,38 @@ def driver(): @pytest.fixture(scope='function') -def chromedriver_path(): +def chromedriver_bin(): service = webdriver.chrome.service.Service() options = webdriver.ChromeOptions() - return webdriver.common.driver_finder.DriverFinder().get_path(service=service, options=options) + options.browser_version = 'stable' + yield webdriver.common.driver_finder.DriverFinder().get_path(service=service, options=options) + + +@pytest.fixture(scope='function') +def chrome_bin(): + service = webdriver.chrome.service.Service() + options = webdriver.ChromeOptions() + options.browser_version = 'stable' + webdriver.common.driver_finder.DriverFinder().get_path(service=service, options=options) + yield options.binary_location + + +@pytest.fixture(scope='function') +def edge_bin(): + service = webdriver.edge.service.Service() + options = webdriver.EdgeOptions() + options.browser_version = 'stable' + webdriver.common.driver_finder.DriverFinder().get_path(service=service, options=options) + yield options.binary_location + + +@pytest.fixture(scope='function') +def firefox_bin(): + service = webdriver.firefox.service.Service() + options = webdriver.FirefoxOptions() + options.browser_version = 'stable' + webdriver.common.driver_finder.DriverFinder().get_path(service=service, options=options) + yield options.binary_location @pytest.fixture(scope='function') diff --git a/examples/python/tests/drivers/test_service.py b/examples/python/tests/drivers/test_service.py index df605e4034a7..1152d21789a2 100644 --- a/examples/python/tests/drivers/test_service.py +++ b/examples/python/tests/drivers/test_service.py @@ -8,10 +8,13 @@ def test_basic_service(): driver.quit() -def test_driver_location(chromedriver_path): - service = webdriver.ChromeService(executable_path=chromedriver_path) +def test_driver_location(chromedriver_bin, chrome_bin): + options = webdriver.ChromeOptions() + options.binary_location = chrome_bin - driver = webdriver.Chrome(service=service) + service = webdriver.ChromeService(executable_path=chromedriver_bin) + + driver = webdriver.Chrome(service=service, options=options) driver.quit() diff --git a/examples/python/tests/waits/test_waits.py b/examples/python/tests/waits/test_waits.py index 006aeb229dc2..b496a8bff6cd 100644 --- a/examples/python/tests/waits/test_waits.py +++ b/examples/python/tests/waits/test_waits.py @@ -36,9 +36,9 @@ def test_implicit(driver): def test_explicit(driver): driver.get('https://www.selenium.dev/selenium/web/dynamic.html') revealed = driver.find_element(By.ID, "revealed") - wait = WebDriverWait(driver, timeout=2) - driver.find_element(By.ID, "reveal").click() + + wait = WebDriverWait(driver, timeout=2) wait.until(lambda d : revealed.is_displayed()) revealed.send_keys("Displayed") @@ -48,10 +48,10 @@ def test_explicit(driver): def test_explicit_options(driver): driver.get('https://www.selenium.dev/selenium/web/dynamic.html') revealed = driver.find_element(By.ID, "revealed") + driver.find_element(By.ID, "reveal").click() + errors = [NoSuchElementException, ElementNotInteractableException] wait = WebDriverWait(driver, timeout=2, poll_frequency=.2, ignored_exceptions=errors) - - driver.find_element(By.ID, "reveal").click() wait.until(lambda d : revealed.send_keys("Displayed") or True) assert revealed.get_property("value") == "Displayed" diff --git a/examples/ruby/spec/browsers/chrome_spec.rb b/examples/ruby/spec/browsers/chrome_spec.rb index 58dea5d2ee31..e10ebeb82739 100644 --- a/examples/ruby/spec/browsers/chrome_spec.rb +++ b/examples/ruby/spec/browsers/chrome_spec.rb @@ -4,7 +4,7 @@ RSpec.describe 'Chrome' do describe 'Options' do - let(:chrome_location) { ENV.fetch('CHROME_BIN', nil) } + let(:chrome_location) { driver_finder && ENV.fetch('CHROME_BIN', nil) } it 'basic options' do options = Selenium::WebDriver::Options.chrome @@ -14,7 +14,7 @@ it 'add arguments' do options = Selenium::WebDriver::Options.chrome - options.args << '--maximize' + options.args << '--start-maximized' @driver = Selenium::WebDriver.for :chrome, options: options end @@ -50,7 +50,7 @@ it 'excludes switches' do options = Selenium::WebDriver::Options.chrome - options.exclude_switches << 'enable-automation' + options.exclude_switches << 'disable-popup-blocking' @driver = Selenium::WebDriver.for :chrome, options: options end @@ -112,4 +112,10 @@ expect(File.readlines(file_name).grep(warning).any?).to eq true end end + + def driver_finder + options = Selenium::WebDriver::Options.chrome(browser_version: 'stable') + ENV['CHROMEDRIVER_BIN'] = Selenium::WebDriver::DriverFinder.path(options, Selenium::WebDriver::Chrome::Service) + ENV['CHROME_BIN'] = options.binary + end end diff --git a/examples/ruby/spec/browsers/edge_spec.rb b/examples/ruby/spec/browsers/edge_spec.rb index 0f662f3c03a2..568f946b7d25 100644 --- a/examples/ruby/spec/browsers/edge_spec.rb +++ b/examples/ruby/spec/browsers/edge_spec.rb @@ -4,7 +4,7 @@ RSpec.describe 'Edge' do describe 'Options' do - let(:edge_location) { ENV.fetch('EDGE_BIN', nil) } + let(:edge_location) { driver_finder && ENV.fetch('EDGE_BIN', nil) } it 'basic options' do options = Selenium::WebDriver::Options.edge @@ -14,7 +14,7 @@ it 'add arguments' do options = Selenium::WebDriver::Options.edge - options.args << '--maximize' + options.args << '--start-maximized' @driver = Selenium::WebDriver.for :edge, options: options end @@ -50,7 +50,7 @@ it 'excludes switches' do options = Selenium::WebDriver::Options.edge - options.exclude_switches << 'enable-automation' + options.exclude_switches << 'disable-popup-blocking' @driver = Selenium::WebDriver.for :edge, options: options end @@ -112,4 +112,10 @@ expect(File.readlines(file_name).grep(warning).any?).to eq true end end + + def driver_finder + options = Selenium::WebDriver::Options.edge(browser_version: 'stable') + ENV['EDGEDRIVER_BIN'] = Selenium::WebDriver::DriverFinder.path(options, Selenium::WebDriver::Edge::Service) + ENV['EDGE_BIN'] = options.binary + end end diff --git a/examples/ruby/spec/browsers/firefox_spec.rb b/examples/ruby/spec/browsers/firefox_spec.rb index 16e02d676cd3..796f00609fb8 100644 --- a/examples/ruby/spec/browsers/firefox_spec.rb +++ b/examples/ruby/spec/browsers/firefox_spec.rb @@ -4,7 +4,7 @@ RSpec.describe 'Firefox' do describe 'Options' do - let(:firefox_location) { ENV.fetch('FF_BIN', nil) } + let(:firefox_location) { driver_finder && ENV.fetch('FIREFOX_BIN', nil) } it 'basic options' do options = Selenium::WebDriver::Options.firefox @@ -119,4 +119,10 @@ expect(injected.text).to eq 'Content injected by webextensions-selenium-example' end end + + def driver_finder + options = Selenium::WebDriver::Options.firefox(browser_version: 'stable') + ENV['GECKODRIVER_BIN'] = Selenium::WebDriver::DriverFinder.path(options, Selenium::WebDriver::Firefox::Service) + ENV['FIREFOX_BIN'] = options.binary + end end diff --git a/examples/ruby/spec/drivers/service_spec.rb b/examples/ruby/spec/drivers/service_spec.rb index 03396f92f966..c08b27157584 100644 --- a/examples/ruby/spec/drivers/service_spec.rb +++ b/examples/ruby/spec/drivers/service_spec.rb @@ -4,8 +4,10 @@ RSpec.describe 'Service' do let(:file_name) { File.expand_path('driver.log') } - let(:driver_path) { "#{ENV.fetch('CHROMEWEBDRIVER', nil)}/chromedriver" } + let(:driver_path) { ENV.fetch('CHROMEDRIVER_BIN', nil) } + let(:browser_path) { ENV.fetch('CHROME_BIN', nil) } + before { driver_finder } after { FileUtils.rm_f(file_name) } it 'has default service' do @@ -14,10 +16,12 @@ end it 'specifies driver location' do + options = Selenium::WebDriver::Options.chrome(binary: browser_path) service = Selenium::WebDriver::Service.chrome + service.executable_path = driver_path - @driver = Selenium::WebDriver.for :chrome, service: service + @driver = Selenium::WebDriver.for :chrome, service: service, options: options end it 'specifies driver port' do @@ -26,4 +30,10 @@ @driver = Selenium::WebDriver.for :chrome, service: service end + + def driver_finder + options = Selenium::WebDriver::Options.chrome(browser_version: 'stable') + ENV['CHROMEDRIVER_BIN'] = Selenium::WebDriver::DriverFinder.path(options, Selenium::WebDriver::Chrome::Service) + ENV['CHROME_BIN'] = options.binary + end end diff --git a/examples/ruby/spec/spec_helper.rb b/examples/ruby/spec/spec_helper.rb index 755acb4ed1b3..902e708d8c6c 100644 --- a/examples/ruby/spec/spec_helper.rb +++ b/examples/ruby/spec/spec_helper.rb @@ -15,12 +15,6 @@ end config.before do |example| - unless ENV.fetch('CHROMEWEBDRIVER', nil) - chromedriver = Selenium::WebDriver::DriverFinder.path(Selenium::WebDriver::Options.chrome, - Selenium::WebDriver::Chrome::Service) - ENV['CHROMEWEBDRIVER'] = File.dirname chromedriver - end - bug_tracker = 'https://gigithub.com/SeleniumHQ/seleniumhq.github.io/issues' guards = Selenium::WebDriver::Support::Guards.new(example, bug_tracker: bug_tracker) diff --git a/examples/ruby/spec/waits/waits_spec.rb b/examples/ruby/spec/waits/waits_spec.rb index 7077d4f790bd..f197fcf40976 100644 --- a/examples/ruby/spec/waits/waits_spec.rb +++ b/examples/ruby/spec/waits/waits_spec.rb @@ -37,9 +37,9 @@ it 'explicit' do driver.get 'https://www.selenium.dev/selenium/web/dynamic.html' revealed = driver.find_element(id: 'revealed') - wait = Selenium::WebDriver::Wait.new - driver.find_element(id: 'reveal').click + + wait = Selenium::WebDriver::Wait.new wait.until { revealed.displayed? } revealed.send_keys('Displayed') @@ -49,13 +49,14 @@ it 'options with explicit' do driver.get 'https://www.selenium.dev/selenium/web/dynamic.html' revealed = driver.find_element(id: 'revealed') + driver.find_element(id: 'reveal').click + errors = [Selenium::WebDriver::Error::NoSuchElementError, Selenium::WebDriver::Error::ElementNotInteractableError] wait = Selenium::WebDriver::Wait.new(timeout: 2, interval: 0.3, ignore: errors) - driver.find_element(id: 'reveal').click wait.until { revealed.send_keys('Displayed') || true } expect(revealed.property(:value)).to eq('Displayed') diff --git a/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.en.md b/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.en.md index b8e85ed12d53..d02a4f35a274 100644 --- a/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.en.md +++ b/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.en.md @@ -31,7 +31,7 @@ An alternate implementation can be found at [CDP Endpoint Set Cookie]({{< ref "c {{% tab header="Java" %}} Because Java requires using all the parameters example, the Map approach used in [CDP Endpoint Set Cookie]({{< ref "cdp_endpoint#set-cookie" >}}) might be more simple. -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L39-L57" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L47-L65" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -60,7 +60,7 @@ An alternate implementation can be found at [CDP Endpoint Performance Metrics]({ {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L68-L72" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L77-L81" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -92,7 +92,7 @@ and [BiDi API Basic Authentication]({{< ref "bidi_api#basic-authentication" >}}) {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} The [BiDi API Basic Authentication]({{< ref "bidi_api#basic-authentication" >}}) implementation should be preferred -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L85-L92" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L94-L101" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -127,7 +127,7 @@ and [WebDriver BiDi Console logs]({{< ref "../webdriver_bidi/log#console-logs" > {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} Use the [WebDriver BiDi Console logs]({{< ref "../webdriver_bidi/log#console-logs" >}}) implementation -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L105-L112" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L114-L121" >}} {{% /tab %}} {{% tab header="Python" %}} Use the [BiDi API Console logs and errors]({{< ref "bidi_api#console-logs-and-errors" >}}) implementation @@ -159,7 +159,7 @@ and [WebDriver BiDi JavaScript exceptions]({{< ref "../webdriver_bidi/log#javasc {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} Use the [WebDriver BiDi JavaScript exceptions]({{< ref "../webdriver_bidi/log#javascript-exceptions" >}}) implementation -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L125-L130" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L133-L138" >}} {{% /tab %}} {{% tab header="Python" %}} Use the [BiDi API JavaScript exceptions]({{< ref "bidi_api#javascript-exceptions" >}}) implementation @@ -188,7 +188,7 @@ Because getting download status requires setting a listener, this cannot be done {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L142-L154" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L150-L162" >}} {{% /tab %}} {{% tab header="Python" %}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.ja.md b/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.ja.md index b8e85ed12d53..d02a4f35a274 100644 --- a/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.ja.md +++ b/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.ja.md @@ -31,7 +31,7 @@ An alternate implementation can be found at [CDP Endpoint Set Cookie]({{< ref "c {{% tab header="Java" %}} Because Java requires using all the parameters example, the Map approach used in [CDP Endpoint Set Cookie]({{< ref "cdp_endpoint#set-cookie" >}}) might be more simple. -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L39-L57" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L47-L65" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -60,7 +60,7 @@ An alternate implementation can be found at [CDP Endpoint Performance Metrics]({ {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L68-L72" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L77-L81" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -92,7 +92,7 @@ and [BiDi API Basic Authentication]({{< ref "bidi_api#basic-authentication" >}}) {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} The [BiDi API Basic Authentication]({{< ref "bidi_api#basic-authentication" >}}) implementation should be preferred -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L85-L92" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L94-L101" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -127,7 +127,7 @@ and [WebDriver BiDi Console logs]({{< ref "../webdriver_bidi/log#console-logs" > {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} Use the [WebDriver BiDi Console logs]({{< ref "../webdriver_bidi/log#console-logs" >}}) implementation -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L105-L112" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L114-L121" >}} {{% /tab %}} {{% tab header="Python" %}} Use the [BiDi API Console logs and errors]({{< ref "bidi_api#console-logs-and-errors" >}}) implementation @@ -159,7 +159,7 @@ and [WebDriver BiDi JavaScript exceptions]({{< ref "../webdriver_bidi/log#javasc {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} Use the [WebDriver BiDi JavaScript exceptions]({{< ref "../webdriver_bidi/log#javascript-exceptions" >}}) implementation -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L125-L130" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L133-L138" >}} {{% /tab %}} {{% tab header="Python" %}} Use the [BiDi API JavaScript exceptions]({{< ref "bidi_api#javascript-exceptions" >}}) implementation @@ -188,7 +188,7 @@ Because getting download status requires setting a listener, this cannot be done {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L142-L154" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L150-L162" >}} {{% /tab %}} {{% tab header="Python" %}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.pt-br.md b/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.pt-br.md index b8e85ed12d53..d02a4f35a274 100644 --- a/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.pt-br.md +++ b/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.pt-br.md @@ -31,7 +31,7 @@ An alternate implementation can be found at [CDP Endpoint Set Cookie]({{< ref "c {{% tab header="Java" %}} Because Java requires using all the parameters example, the Map approach used in [CDP Endpoint Set Cookie]({{< ref "cdp_endpoint#set-cookie" >}}) might be more simple. -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L39-L57" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L47-L65" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -60,7 +60,7 @@ An alternate implementation can be found at [CDP Endpoint Performance Metrics]({ {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L68-L72" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L77-L81" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -92,7 +92,7 @@ and [BiDi API Basic Authentication]({{< ref "bidi_api#basic-authentication" >}}) {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} The [BiDi API Basic Authentication]({{< ref "bidi_api#basic-authentication" >}}) implementation should be preferred -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L85-L92" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L94-L101" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -127,7 +127,7 @@ and [WebDriver BiDi Console logs]({{< ref "../webdriver_bidi/log#console-logs" > {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} Use the [WebDriver BiDi Console logs]({{< ref "../webdriver_bidi/log#console-logs" >}}) implementation -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L105-L112" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L114-L121" >}} {{% /tab %}} {{% tab header="Python" %}} Use the [BiDi API Console logs and errors]({{< ref "bidi_api#console-logs-and-errors" >}}) implementation @@ -159,7 +159,7 @@ and [WebDriver BiDi JavaScript exceptions]({{< ref "../webdriver_bidi/log#javasc {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} Use the [WebDriver BiDi JavaScript exceptions]({{< ref "../webdriver_bidi/log#javascript-exceptions" >}}) implementation -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L125-L130" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L133-L138" >}} {{% /tab %}} {{% tab header="Python" %}} Use the [BiDi API JavaScript exceptions]({{< ref "bidi_api#javascript-exceptions" >}}) implementation @@ -188,7 +188,7 @@ Because getting download status requires setting a listener, this cannot be done {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L142-L154" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L150-L162" >}} {{% /tab %}} {{% tab header="Python" %}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.zh-cn.md b/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.zh-cn.md index b8e85ed12d53..d02a4f35a274 100644 --- a/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.zh-cn.md +++ b/website_and_docs/content/documentation/webdriver/bidirectional/chrome_devtools/cdp_api.zh-cn.md @@ -31,7 +31,7 @@ An alternate implementation can be found at [CDP Endpoint Set Cookie]({{< ref "c {{% tab header="Java" %}} Because Java requires using all the parameters example, the Map approach used in [CDP Endpoint Set Cookie]({{< ref "cdp_endpoint#set-cookie" >}}) might be more simple. -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L39-L57" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L47-L65" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -60,7 +60,7 @@ An alternate implementation can be found at [CDP Endpoint Performance Metrics]({ {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L68-L72" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L77-L81" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -92,7 +92,7 @@ and [BiDi API Basic Authentication]({{< ref "bidi_api#basic-authentication" >}}) {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} The [BiDi API Basic Authentication]({{< ref "bidi_api#basic-authentication" >}}) implementation should be preferred -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L85-L92" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L94-L101" >}} {{% /tab %}} {{% tab header="Python" %}} Because Python requires using async methods for this example, the synchronous approach found in @@ -127,7 +127,7 @@ and [WebDriver BiDi Console logs]({{< ref "../webdriver_bidi/log#console-logs" > {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} Use the [WebDriver BiDi Console logs]({{< ref "../webdriver_bidi/log#console-logs" >}}) implementation -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L105-L112" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L114-L121" >}} {{% /tab %}} {{% tab header="Python" %}} Use the [BiDi API Console logs and errors]({{< ref "bidi_api#console-logs-and-errors" >}}) implementation @@ -159,7 +159,7 @@ and [WebDriver BiDi JavaScript exceptions]({{< ref "../webdriver_bidi/log#javasc {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} Use the [WebDriver BiDi JavaScript exceptions]({{< ref "../webdriver_bidi/log#javascript-exceptions" >}}) implementation -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L125-L130" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L133-L138" >}} {{% /tab %}} {{% tab header="Python" %}} Use the [BiDi API JavaScript exceptions]({{< ref "bidi_api#javascript-exceptions" >}}) implementation @@ -188,7 +188,7 @@ Because getting download status requires setting a listener, this cannot be done {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L142-L154" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/bidirectional/chrome_devtools/CdpApiTest.java#L150-L162" >}} {{% /tab %}} {{% tab header="Python" %}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/chrome.en.md b/website_and_docs/content/documentation/webdriver/browsers/chrome.en.md index 5ac15048e47a..2fe7ed9bcc62 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/chrome.en.md +++ b/website_and_docs/content/documentation/webdriver/browsers/chrome.en.md @@ -23,10 +23,10 @@ Starting a Chrome session with basic defined options looks like this: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L39-L40" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L37-L38" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L11-L12" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L9-L10" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L30-L31" >}} @@ -55,10 +55,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L47" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L45" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L20" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L18" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L39" >}} @@ -83,10 +83,10 @@ Add a browser location to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L56" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#31">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L29">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L49" >}} @@ -112,10 +112,10 @@ Add an extension to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L67" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L65" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L42">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L40">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L61" >}} @@ -141,7 +141,7 @@ so long as the quit command is not sent to the driver. **Note**: This is already the default behavior in Java. {{% /tab %}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L53" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L51" >}} {{% /tab %}} {{% tab header="CSharp" %}} **Note**: This is already the default behavior in .NET. @@ -169,10 +169,10 @@ Set excluded arguments on options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L79" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L78" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L64" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L62" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L76" >}} @@ -205,14 +205,14 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L87" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L100-L101" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L73" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L71" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L86" >}} @@ -236,14 +236,14 @@ To change the logging output to display in the console as STDOUT: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L101" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L114-L115" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L84" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L82" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -269,14 +269,14 @@ so this example is just setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L116" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L129-L130" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `ChromiumDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L95" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L93" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -304,13 +304,13 @@ The log output will be managed by the driver, not the process, so minor differen {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L133-L134" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L147-L148" >}} **Note**: Java also allows toggling these features by System Property:\ Property keys: `ChromeDriverService.CHROME_DRIVER_APPEND_LOG_PROPERTY` and `ChromeDriverService.CHROME_DRIVER_READABLE_TIMESTAMP`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L106" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L104" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -336,14 +336,14 @@ Note that this is an unsupported feature, and bugs will not be investigated. {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L152" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L166-L167" >}} **Note**: Java also allows disabling build checks by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_DISABLE_BUILD_CHECK`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L117" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L155" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/chrome.ja.md b/website_and_docs/content/documentation/webdriver/browsers/chrome.ja.md index f3a7389d136e..b98b3afdd2a8 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/chrome.ja.md +++ b/website_and_docs/content/documentation/webdriver/browsers/chrome.ja.md @@ -22,10 +22,10 @@ Chrome に固有のCapabilityは、Google の[Capabilities & ChromeOptions](http {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L39-L40" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L37-L38" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L11-L12" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L9-L10" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L30-L31" >}} @@ -56,10 +56,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L47" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L45" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L20" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L18" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L39" >}} @@ -84,10 +84,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L56" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L31">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L29">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L49" >}} @@ -115,10 +115,10 @@ please use the `load-extension` argument instead, as mentioned in {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L67" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L65" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L42">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L40">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L61" >}} @@ -143,7 +143,7 @@ please use the `load-extension` argument instead, as mentioned in **Note**: This is already the default behavior in Java. {{% /tab %}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L53" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L51" >}} {{% /tab %}} {{% tab header="CSharp" %}} **Note**: This is already the default behavior in .NET. @@ -173,10 +173,10 @@ can be parsed from the {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L79" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L78" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L64" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L62" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L76" >}} @@ -209,14 +209,14 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L87" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L100-L101" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L73" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L71" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L86" >}} @@ -240,14 +240,14 @@ To change the logging output to display in the console as STDOUT: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L101" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L114-L115" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L84" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L82" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -273,14 +273,14 @@ so this example is just setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L116" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L129-L130" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `ChromiumDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L95" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L93" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -308,13 +308,13 @@ The log output will be managed by the driver, not the process, so minor differen {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L133-L134" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L147-L148" >}} **Note**: Java also allows toggling these features by System Property:\ Property keys: `ChromeDriverService.CHROME_DRIVER_APPEND_LOG_PROPERTY` and `ChromeDriverService.CHROME_DRIVER_READABLE_TIMESTAMP`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L106" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L104" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -340,14 +340,14 @@ Note that this is an unsupported feature, and bugs will not be investigated. {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L152" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L166-L167" >}} **Note**: Java also allows disabling build checks by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_DISABLE_BUILD_CHECK`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L117" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L155" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/chrome.pt-br.md b/website_and_docs/content/documentation/webdriver/browsers/chrome.pt-br.md index 826e5a78d044..7792adeb2963 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/chrome.pt-br.md +++ b/website_and_docs/content/documentation/webdriver/browsers/chrome.pt-br.md @@ -21,10 +21,10 @@ Este é um exemplo de como iniciar uma sessão Chrome com um conjunto de opçõe {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L39-L40" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L37-L38" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L11-L12" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L9-L10" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L30-L31" >}} @@ -55,10 +55,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L47" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L45" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L20" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L18" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L39" >}} @@ -80,10 +80,10 @@ Adicionar uma localização: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L56" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L31">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L29">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L49" >}} @@ -111,10 +111,10 @@ Adicionar uma extensão: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L67" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L65" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L42">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L40">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L61" >}} @@ -141,7 +141,7 @@ Adicionar detach: **Note**: This is already the default behavior in Java. {{% /tab %}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L53" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L51" >}} {{% /tab %}} {{% tab header="CSharp" %}} **Note**: This is already the default behavior in .NET. @@ -170,10 +170,10 @@ Exclua parametros: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L79" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L78" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L64" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L62" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L76" >}} @@ -206,14 +206,14 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L87" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L100-L101" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L73" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L71" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L86" >}} @@ -237,14 +237,14 @@ To change the logging output to display in the console as STDOUT: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L101" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L114-L115" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L84" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L82" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -270,14 +270,14 @@ so this example is just setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L116" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L129-L130" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `ChromiumDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L95" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L93" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -305,13 +305,13 @@ The log output will be managed by the driver, not the process, so minor differen {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L133-L134" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L147-L148" >}} **Note**: Java also allows toggling these features by System Property:\ Property keys: `ChromeDriverService.CHROME_DRIVER_APPEND_LOG_PROPERTY` and `ChromeDriverService.CHROME_DRIVER_READABLE_TIMESTAMP`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L106" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L104" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -337,14 +337,14 @@ Note that this is an unsupported feature, and bugs will not be investigated. {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L152" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L166-L167" >}} **Note**: Java also allows disabling build checks by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_DISABLE_BUILD_CHECK`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L117" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L155" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/chrome.zh-cn.md b/website_and_docs/content/documentation/webdriver/browsers/chrome.zh-cn.md index 80f5b615a39c..217c7b7755df 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/chrome.zh-cn.md +++ b/website_and_docs/content/documentation/webdriver/browsers/chrome.zh-cn.md @@ -21,10 +21,10 @@ Chrome浏览器的特有功能可以在谷歌的页面找到: [Capabilities & Ch {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L39-L40" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L37-L38" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L11-L12" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L9-L10" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L30-L31" >}} @@ -55,10 +55,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L47" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L45" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L20" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L18" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L39" >}} @@ -82,10 +82,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L56" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L31">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L29">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L49" >}} @@ -111,10 +111,10 @@ please use the `load-extension` argument instead, as mentioned in {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L67" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L65" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L42">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L40">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L61" >}} @@ -141,7 +141,7 @@ please use the `load-extension` argument instead, as mentioned in **Note**: This is already the default behavior in Java. {{% /tab %}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L53" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L51" >}} {{% /tab %}} {{% tab header="CSharp" %}} **Note**: This is already the default behavior in .NET. @@ -169,10 +169,10 @@ can be parsed from the {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L79" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L78" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L64" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_chrome.py#L62" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L76" >}} @@ -205,14 +205,14 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L87" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L100-L101" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L73" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L71" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L86" >}} @@ -236,14 +236,14 @@ To change the logging output to display in the console as STDOUT: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L101" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L114-L115" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L84" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L82" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -269,14 +269,14 @@ so this example is just setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L116" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L129-L130" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `ChromiumDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L95" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L93" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -304,13 +304,13 @@ The log output will be managed by the driver, not the process, so minor differen {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L133-L134" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L147-L148" >}} **Note**: Java also allows toggling these features by System Property:\ Property keys: `ChromeDriverService.CHROME_DRIVER_APPEND_LOG_PROPERTY` and `ChromeDriverService.CHROME_DRIVER_READABLE_TIMESTAMP`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L106" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L104" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -336,14 +336,14 @@ Note that this is an unsupported feature, and bugs will not be investigated. {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L152" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java#L166-L167" >}} **Note**: Java also allows disabling build checks by System Property:\ Property key: `ChromeDriverService.CHROME_DRIVER_DISABLE_BUILD_CHECK`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L117" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_chrome.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs#L155" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/edge.en.md b/website_and_docs/content/documentation/webdriver/browsers/edge.en.md index c6b70ea7c1be..574156a649f0 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/edge.en.md +++ b/website_and_docs/content/documentation/webdriver/browsers/edge.en.md @@ -20,10 +20,10 @@ Starting an Edge session with basic defined options looks like this: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L39-L40" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L37-L38" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L12-L13" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L9-L10" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L30-L31" >}} @@ -52,10 +52,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L47" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L45" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L21" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L18" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L39" >}} @@ -80,10 +80,10 @@ Add a browser location to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L56" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#32">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L29">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L49" >}} @@ -109,10 +109,10 @@ Add an extension to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L67" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L65" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L43" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L40" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L61" >}} @@ -138,7 +138,7 @@ so long as the quit command is not sent to the driver. **Note**: This is already the default behavior in Java. {{% /tab %}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L54" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L51" >}} {{% /tab %}} {{% tab header="CSharp" %}} **Note**: This is already the default behavior in .NET. @@ -166,10 +166,10 @@ Set excluded arguments on options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L79" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L78" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L65" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L62" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L76" >}} @@ -203,13 +203,13 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L87" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L100" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L74" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L71" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L86" >}} @@ -233,7 +233,7 @@ To change the logging output to display in the console as STDOUT: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L101" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L113" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` @@ -265,13 +265,13 @@ so this example is just setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L116" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L126-L127" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `ChromiumDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L97" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L93" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -299,13 +299,13 @@ The log output will be managed by the driver, not the process, so minor differen {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L133-L134" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L142-L143" >}} **Note**: Java also allows toggling these features by System Property:\ Property keys: `EdgeDriverService.EDGE_DRIVER_APPEND_LOG_PROPERTY` and `EdgeDriverService.EDGE_DRIVER_READABLE_TIMESTAMP`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L108" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L104" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -331,13 +331,13 @@ Note that this is an unsupported feature, and bugs will not be investigated. {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L152" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L160-L161" >}} **Note**: Java also allows disabling build checks by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_DISABLE_BUILD_CHECK`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L119" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L155" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/edge.ja.md b/website_and_docs/content/documentation/webdriver/browsers/edge.ja.md index 9537b1aa37a9..006665374789 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/edge.ja.md +++ b/website_and_docs/content/documentation/webdriver/browsers/edge.ja.md @@ -22,10 +22,10 @@ Capabilities unique to Chromium are documented at Google's page for {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L39-L40" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L37-L38" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L12-L13" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L9-L10" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L30-L31" >}} @@ -54,10 +54,10 @@ There are two excellent resources for investigating these arguments: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L47" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L45" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L21" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L18" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L39" >}} @@ -82,10 +82,10 @@ Add a browser location to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L56" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#32">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L29">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L49" >}} @@ -111,10 +111,10 @@ Add an extension to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L67" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L65" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L43" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L40" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L61" >}} @@ -140,7 +140,7 @@ so long as the quit command is not sent to the driver. **Note**: This is already the default behavior in Java. {{% /tab %}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L54" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L51" >}} {{% /tab %}} {{% tab header="CSharp" %}} **Note**: This is already the default behavior in .NET. @@ -168,10 +168,10 @@ Set excluded arguments on options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L79" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L78" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L65" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L62" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L76" >}} @@ -205,13 +205,13 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L87" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L100" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L74" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L71" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L86" >}} @@ -235,7 +235,7 @@ To change the logging output to display in the console as STDOUT: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L101" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L113" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` @@ -267,13 +267,13 @@ so this example is just setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L116" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L126-L127" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `ChromiumDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L97" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L93" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -301,13 +301,13 @@ The log output will be managed by the driver, not the process, so minor differen {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L133-L134" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L142-L143" >}} **Note**: Java also allows toggling these features by System Property:\ Property keys: `EdgeDriverService.EDGE_DRIVER_APPEND_LOG_PROPERTY` and `EdgeDriverService.EDGE_DRIVER_READABLE_TIMESTAMP`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L108" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L104" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -333,13 +333,13 @@ Note that this is an unsupported feature, and bugs will not be investigated. {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L152" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L160-L161" >}} **Note**: Java also allows disabling build checks by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_DISABLE_BUILD_CHECK`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L119" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L155" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/edge.pt-br.md b/website_and_docs/content/documentation/webdriver/browsers/edge.pt-br.md index d5f276b76011..c5bf7fd59a85 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/edge.pt-br.md +++ b/website_and_docs/content/documentation/webdriver/browsers/edge.pt-br.md @@ -22,10 +22,10 @@ Este é um exemplo de como iniciar uma sessão Edge com um conjunto de opções {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L39-L40" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L37-L38" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L12-L13" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L9-L10" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L30-L31" >}} @@ -54,10 +54,10 @@ Adicione uma opção: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L47" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L45" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L21" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L18" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L39" >}} @@ -82,10 +82,10 @@ Add a browser location to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L56" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#32">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L29">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L49" >}} @@ -111,10 +111,10 @@ Add an extension to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L67" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L65" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L43" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L40" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L61" >}} @@ -140,7 +140,7 @@ so long as the quit command is not sent to the driver. **Note**: This is already the default behavior in Java. {{% /tab %}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L54" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L51" >}} {{% /tab %}} {{% tab header="CSharp" %}} **Note**: This is already the default behavior in .NET. @@ -168,10 +168,10 @@ Set excluded arguments on options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L79" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L78" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L65" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L62" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L76" >}} @@ -205,13 +205,13 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L87" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L100" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L74" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L71" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L86" >}} @@ -235,7 +235,7 @@ To change the logging output to display in the console as STDOUT: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L101" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L113" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` @@ -267,13 +267,13 @@ so this example is just setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L116" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L126-L127" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `ChromiumDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L97" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L93" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -301,13 +301,13 @@ The log output will be managed by the driver, not the process, so minor differen {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L133-L134" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L142-L143" >}} **Note**: Java also allows toggling these features by System Property:\ Property keys: `EdgeDriverService.EDGE_DRIVER_APPEND_LOG_PROPERTY` and `EdgeDriverService.EDGE_DRIVER_READABLE_TIMESTAMP`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L108" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L104" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -333,13 +333,13 @@ Note that this is an unsupported feature, and bugs will not be investigated. {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L152" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L160-L161" >}} **Note**: Java also allows disabling build checks by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_DISABLE_BUILD_CHECK`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L119" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L155" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/edge.zh-cn.md b/website_and_docs/content/documentation/webdriver/browsers/edge.zh-cn.md index c7c03f2b0e8b..7debe6abe6e9 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/edge.zh-cn.md +++ b/website_and_docs/content/documentation/webdriver/browsers/edge.zh-cn.md @@ -22,10 +22,10 @@ Capabilities unique to Chromium are documented at Google's page for {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L39-L40" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L37-L38" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L12-L13" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L9-L10" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L30-L31" >}} @@ -54,10 +54,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L47" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L45" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L21" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L18" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L39" >}} @@ -82,10 +82,10 @@ Add a browser location to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L56" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#32">}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L29">}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L49" >}} @@ -111,10 +111,10 @@ Add an extension to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L67" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L65" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L43" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L40" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L61" >}} @@ -140,7 +140,7 @@ so long as the quit command is not sent to the driver. **Note**: This is already the default behavior in Java. {{% /tab %}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L54" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L51" >}} {{% /tab %}} {{% tab header="CSharp" %}} **Note**: This is already the default behavior in .NET. @@ -168,10 +168,10 @@ Set excluded arguments on options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L79" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L78" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L65" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_edge.py#L62" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L76" >}} @@ -205,13 +205,13 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L87" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L100" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L74" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L71" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L86" >}} @@ -235,7 +235,7 @@ To change the logging output to display in the console as STDOUT: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L101" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L113" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` @@ -267,13 +267,13 @@ so this example is just setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L116" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L126-L127" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `ChromiumDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L97" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L93" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -301,13 +301,13 @@ The log output will be managed by the driver, not the process, so minor differen {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L133-L134" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L142-L143" >}} **Note**: Java also allows toggling these features by System Property:\ Property keys: `EdgeDriverService.EDGE_DRIVER_APPEND_LOG_PROPERTY` and `EdgeDriverService.EDGE_DRIVER_READABLE_TIMESTAMP`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L108" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L104" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -333,13 +333,13 @@ Note that this is an unsupported feature, and bugs will not be investigated. {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L152" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java#L160-L161" >}} **Note**: Java also allows disabling build checks by System Property:\ Property key: `EdgeDriverService.EDGE_DRIVER_DISABLE_BUILD_CHECK`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L119" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_edge.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs#L155" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/firefox.en.md b/website_and_docs/content/documentation/webdriver/browsers/firefox.en.md index aab8ce28add3..fe72f8896199 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/firefox.en.md +++ b/website_and_docs/content/documentation/webdriver/browsers/firefox.en.md @@ -21,10 +21,10 @@ Starting a Firefox session with basic defined options looks like this: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L42-L43" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L36-L37" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L12-L13" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L10-L11" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L34-L35" >}} @@ -49,10 +49,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L50" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L44" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L21" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L19" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L43" >}} @@ -77,10 +77,10 @@ Add a browser location to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L60" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L30" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L28" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L53" >}} @@ -163,14 +163,14 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L68" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L62-L63" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L38" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L36" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -194,14 +194,14 @@ To change the logging output to display in the console: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L82" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L76-L77" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L50" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L48" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -228,14 +228,14 @@ so this examples is just for setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L97" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L90-L91" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `FirefoxDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L61" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L59" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -260,14 +260,14 @@ Firefox truncates lines by default. To turn off truncation: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L114" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L106-L107" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_NO_TRUNCATE`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L72" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L70" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -292,13 +292,13 @@ or want profiles to be created some place specific, you can change the profile r {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L126" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L118-L119" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_PROFILE_ROOT`\ Property value: String representing path to profile root directory {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_firefox.py#L83" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_firefox.py#L81" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -335,10 +335,10 @@ A signed xpi file you would get from [Mozilla Addon page](https://addons.mozilla {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L140" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L132" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L96" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L94" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L137" >}} @@ -360,14 +360,14 @@ Uninstalling an addon requires knowing its id. The id can be obtained from the r {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L153" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L146" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L108" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L106" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.5" >}} -{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L151" >}} +{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L152" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< gh-codeblock path="/examples/ruby/spec/browsers/firefox_spec.rb#L106" >}} @@ -388,10 +388,10 @@ example with a directory: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L164" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L157" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L117" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.5" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/firefox.ja.md b/website_and_docs/content/documentation/webdriver/browsers/firefox.ja.md index 6e2c44d36e72..a28841bf89dd 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/firefox.ja.md +++ b/website_and_docs/content/documentation/webdriver/browsers/firefox.ja.md @@ -22,10 +22,10 @@ Firefox に固有のCapabilityは、Mozilla のページの [firefoxOptions](htt {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L42-L43" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L36-L37" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L12-L13" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L10-L11" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L34-L35" >}} @@ -52,10 +52,10 @@ Firefox に固有のCapabilityは、Mozilla のページの [firefoxOptions](htt {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L50" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L44" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L21" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L19" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L43" >}} @@ -81,10 +81,10 @@ Firefox に固有のCapabilityは、Mozilla のページの [firefoxOptions](htt {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L60" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L30" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L28" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L53" >}} @@ -168,14 +168,14 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L68" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L62-L63" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L38" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L36" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -199,14 +199,14 @@ To change the logging output to display in the console: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L82" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L76-L77" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L50" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L48" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -233,14 +233,14 @@ so this examples is just for setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L97" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L90-L91" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `FirefoxDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L61" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L59" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -265,14 +265,14 @@ Firefox truncates lines by default. To turn off truncation: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L114" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L106-L107" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_NO_TRUNCATE`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L72" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L70" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -297,13 +297,13 @@ or want profiles to be created some place specific, you can change the profile r {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L126" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L118-L119" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_PROFILE_ROOT`\ Property value: String representing path to profile root directory {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_firefox.py#L83" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_firefox.py#L81" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -341,10 +341,10 @@ please refer to the {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L140" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L132" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L96" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L94" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L137" >}} @@ -367,14 +367,14 @@ IDはアドオンインストール時の戻り値から取得できます。 {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L153" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L146" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L108" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L106" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.5" >}} -{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L151" >}} +{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L152" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< gh-codeblock path="/examples/ruby/spec/browsers/firefox_spec.rb#L106" >}} @@ -395,10 +395,10 @@ IDはアドオンインストール時の戻り値から取得できます。 {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L164" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L157" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L117" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.5" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/firefox.pt-br.md b/website_and_docs/content/documentation/webdriver/browsers/firefox.pt-br.md index 3ff7942055c5..d36feec92ea8 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/firefox.pt-br.md +++ b/website_and_docs/content/documentation/webdriver/browsers/firefox.pt-br.md @@ -21,10 +21,10 @@ Este é um exemplo de como iniciar uma sessão Firefox com um conjunto de opçõ {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L42-L43" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L36-L37" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L12-L13" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L10-L11" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L34-L35" >}} @@ -51,10 +51,10 @@ Adicione uma opção: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L50" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L44" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L21" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L19" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L43" >}} @@ -80,10 +80,10 @@ Adicionar uma localização: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L60" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L30" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L28" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L53" >}} @@ -167,14 +167,14 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L68" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L62-L63" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L38" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L36" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -198,14 +198,14 @@ To change the logging output to display in the console: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L82" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L76-L77" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L50" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L48" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -232,14 +232,14 @@ so this examples is just for setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L97" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L90-L91" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `FirefoxDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L61" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L59" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -264,14 +264,14 @@ Firefox truncates lines by default. To turn off truncation: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L114" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L106-L107" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_NO_TRUNCATE`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L72" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L70" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -296,13 +296,13 @@ or want profiles to be created some place specific, you can change the profile r {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L126" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L118-L119" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_PROFILE_ROOT`\ Property value: String representing path to profile root directory {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_firefox.py#L83" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_firefox.py#L81" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -340,10 +340,10 @@ Um arquivo xpi que pode ser obtido da [página Mozilla Extras](https://addons.mo {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L140" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L132" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L96" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L94" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L137" >}} @@ -365,14 +365,14 @@ Desinstalar uma extensão implica saber o seu id que pode ser obtido como valor {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L153" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L146" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L108" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L106" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.5" >}} -{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L151" >}} +{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L152" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< gh-codeblock path="/examples/ruby/spec/browsers/firefox_spec.rb#L106" >}} @@ -393,10 +393,10 @@ uma pasta, este é um exemplo com uma pasta: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L164" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L157" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L117" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.5" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/firefox.zh-cn.md b/website_and_docs/content/documentation/webdriver/browsers/firefox.zh-cn.md index 25c98cb14683..c2e8ed02d3fb 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/firefox.zh-cn.md +++ b/website_and_docs/content/documentation/webdriver/browsers/firefox.zh-cn.md @@ -21,10 +21,10 @@ Starting a Firefox session with basic defined options looks like this: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L42-L43" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L36-L37" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L12-L13" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L10-L11" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L34-L35" >}} @@ -51,10 +51,10 @@ Add an argument to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L50" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L44" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L21" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L19" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L43" >}} @@ -79,10 +79,10 @@ Add a browser location to options: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L60" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L54" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L30" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L28" >}} {{% /tab %}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L53" >}} @@ -166,14 +166,14 @@ To change the logging output to save to a specific file: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L68" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L62-L63" >}} **Note**: Java also allows setting file output by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L38" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L36" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -197,14 +197,14 @@ To change the logging output to display in the console: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L82" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L76-L77" >}} **Note**: Java also allows setting console output by System Property;\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_PROPERTY`\ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L50" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L48" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -231,14 +231,14 @@ so this examples is just for setting the log level generically: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L97" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L90-L91" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_LEVEL_PROPERTY`\ Property value: String representation of `FirefoxDriverLogLevel` enum {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L61" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L59" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -263,14 +263,14 @@ Firefox truncates lines by default. To turn off truncation: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L114" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L106-L107" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_LOG_NO_TRUNCATE`\ Property value: `"true"` or `"false"` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L72" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L70" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -295,13 +295,13 @@ or want profiles to be created some place specific, you can change the profile r {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} {{< badge-version version="4.10" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L126" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L118-L119" >}} **Note**: Java also allows setting log level by System Property:\ Property key: `GeckoDriverService.GECKO_DRIVER_PROFILE_ROOT`\ Property value: String representing path to profile root directory {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_firefox.py#L83" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_firefox.py#L81" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -337,10 +337,10 @@ A signed xpi file you would get from [Mozilla Addon page](https://addons.mozilla {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L140" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L132" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L96" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L94" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L137" >}} @@ -362,14 +362,14 @@ Uninstalling an addon requires knowing its id. The id can be obtained from the r {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L153" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L146" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L108" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L106" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.5" >}} -{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L151" >}} +{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/FirefoxTest.cs#L152" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< gh-codeblock path="/examples/ruby/spec/browsers/firefox_spec.rb#L106" >}} @@ -390,10 +390,10 @@ example with a directory: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L164" >}} +{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/FirefoxTest.java#L157" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L117" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_firefox.py#L115" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.5" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.en.md b/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.en.md index 21c5cde958d1..8b4e8024a1cd 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.en.md +++ b/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.en.md @@ -32,13 +32,13 @@ Starting a Microsoft Edge browser in Internet Explorer Compatibility mode with b {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/InternetExplorerTest.java#38-L41" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L13-L16" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L11-L14" >}} {{% /tab %}} {{% tab header="CSharp" %}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L35-L38" >}} {{% /tab %}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L8-L11" >}} +{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L10-L13" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -62,13 +62,13 @@ So, if IE is not on the system, you only need: {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/InternetExplorerTest.java#46-L47" >}} {{< /tab >}} {{% tab header="Python" text=true %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L23-L24" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L21-L22" >}} {{% /tab %}} {{% tab header="CSharp" text=true %}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L44-L45" >}} {{% /tab %}} {{< tab header="Ruby" text=true >}} -{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L15-L16" >}} +{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L17-L18" >}} {{< /tab >}} {{< tab header="JavaScript" >}} let driver = await new Builder() @@ -605,7 +605,7 @@ Property key: `InternetExplorerDriverService.IE_DRIVER_LOGFILE_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L31" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L29" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -636,7 +636,7 @@ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L43" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L41" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -665,7 +665,7 @@ Property key: `InternetExplorerDriverService.IE_DRIVER_LOGLEVEL_PROPERTY`\ Property value: String representation of `InternetExplorerDriverLogLevel.DEBUG.toString()` enum {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L55" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L53" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L85" >}} @@ -693,7 +693,7 @@ Property value: String representing path to supporting files directory {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L67" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L65" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L98" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.ja.md b/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.ja.md index e58d919d8b4d..7cf3fdd38f24 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.ja.md +++ b/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.ja.md @@ -32,13 +32,13 @@ Starting a Microsoft Edge browser in Internet Explorer Compatibility mode with b {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/InternetExplorerTest.java#38-L41" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L13-L16" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L11-L14" >}} {{% /tab %}} {{% tab header="CSharp" %}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L35-L38" >}} {{% /tab %}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L8-L11" >}} +{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L10-L13" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -61,13 +61,13 @@ So, if IE is not on the system, you only need: {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/InternetExplorerTest.java#46-L47" >}} {{< /tab >}} {{% tab header="Python" text=true %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L23-L24" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L21-L22" >}} {{% /tab %}} {{% tab header="CSharp" text=true %}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L44-L45" >}} {{% /tab %}} {{< tab header="Ruby" text=true >}} -{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L15-L16" >}} +{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L17-L18" >}} {{< /tab >}} {{< tab header="JavaScript" >}} let driver = await new Builder() @@ -593,7 +593,7 @@ Property key: `InternetExplorerDriverService.IE_DRIVER_LOGFILE_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L31" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L29" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -624,7 +624,7 @@ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L43" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L41" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -653,7 +653,7 @@ Property key: `InternetExplorerDriverService.IE_DRIVER_LOGLEVEL_PROPERTY`\ Property value: String representation of `InternetExplorerDriverLogLevel.DEBUG.toString()` enum {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L55" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L53" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L85" >}} @@ -681,7 +681,7 @@ Property value: String representing path to supporting files directory {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L67" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L65" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L98" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.pt-br.md b/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.pt-br.md index 050ecdbb736d..c6df06bef96d 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.pt-br.md +++ b/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.pt-br.md @@ -32,13 +32,13 @@ usando um conjunto de opções básicas: {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/InternetExplorerTest.java#38-L41" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L13-L16" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L11-L14" >}} {{% /tab %}} {{% tab header="CSharp" %}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L35-L38" >}} {{% /tab %}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L8-L11" >}} +{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L10-L13" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -62,13 +62,13 @@ So, if IE is not on the system, you only need: {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/InternetExplorerTest.java#46-L47" >}} {{< /tab >}} {{% tab header="Python" text=true %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L23-L24" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L21-L22" >}} {{% /tab %}} {{% tab header="CSharp" text=true %}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L44-L45" >}} {{% /tab %}} {{< tab header="Ruby" text=true >}} -{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L15-L16" >}} +{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L17-L18" >}} {{< /tab >}} {{< tab header="JavaScript" >}} let driver = await new Builder() @@ -610,7 +610,7 @@ Property key: `InternetExplorerDriverService.IE_DRIVER_LOGFILE_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L31" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L29" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -641,7 +641,7 @@ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L43" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L41" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -670,7 +670,7 @@ Property key: `InternetExplorerDriverService.IE_DRIVER_LOGLEVEL_PROPERTY`\ Property value: String representation of `InternetExplorerDriverLogLevel.DEBUG.toString()` enum {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L55" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L53" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L85" >}} @@ -698,7 +698,7 @@ Property value: String representing path to supporting files directory {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L67" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L65" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L98" >}} diff --git a/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.zh-cn.md b/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.zh-cn.md index 75785322db27..5489345ebc19 100644 --- a/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.zh-cn.md +++ b/website_and_docs/content/documentation/webdriver/browsers/internet_explorer.zh-cn.md @@ -32,13 +32,13 @@ Starting a Microsoft Edge browser in Internet Explorer Compatibility mode with b {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/InternetExplorerTest.java#38-L41" >}} {{< /tab >}} {{% tab header="Python" %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L13-L16" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L11-L14" >}} {{% /tab %}} {{% tab header="CSharp" %}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L35-L38" >}} {{% /tab %}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L8-L11" >}} +{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L10-L13" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -61,13 +61,13 @@ So, if IE is not on the system, you only need: {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/browsers/InternetExplorerTest.java#46-L47" >}} {{< /tab >}} {{% tab header="Python" text=true %}} -{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L23-L24" >}} +{{< gh-codeblock path="/examples/python/tests/browsers/test_internet_explorer.py#L21-L22" >}} {{% /tab %}} {{% tab header="CSharp" text=true %}} {{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L44-L45" >}} {{% /tab %}} {{< tab header="Ruby" text=true >}} -{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L15-L16" >}} +{{< gh-codeblock path="/examples/ruby/spec/browsers/internet_explorer_spec.rb#L17-L18" >}} {{< /tab >}} {{< tab header="JavaScript" >}} let driver = await new Builder() @@ -603,7 +603,7 @@ Property key: `InternetExplorerDriverService.IE_DRIVER_LOGFILE_PROPERTY`\ Property value: String representing path to log file {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L31" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L29" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -634,7 +634,7 @@ Property value: `DriverService.LOG_STDOUT` or `DriverService.LOG_STDERR` {{% /tab %}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L43" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L41" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-implementation >}} @@ -663,7 +663,7 @@ Property key: `InternetExplorerDriverService.IE_DRIVER_LOGLEVEL_PROPERTY`\ Property value: String representation of `InternetExplorerDriverLogLevel.DEBUG.toString()` enum {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L55" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L53" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L85" >}} @@ -691,7 +691,7 @@ Property value: String representing path to supporting files directory {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L67" >}} +{{< gh-codeblock path="examples/python/tests/browsers/test_internet_explorer.py#L65" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Browsers/InternetExplorerTest.cs#L98" >}} diff --git a/website_and_docs/content/documentation/webdriver/drivers/service.en.md b/website_and_docs/content/documentation/webdriver/drivers/service.en.md index 765703f3a7e9..f3a26fb2ab85 100644 --- a/website_and_docs/content/documentation/webdriver/drivers/service.en.md +++ b/website_and_docs/content/documentation/webdriver/drivers/service.en.md @@ -18,7 +18,7 @@ To start a driver with a default service instance: {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L34-L36" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L15-L16" >}} **Note**: Java Service classes only allow values to be set during construction with a Builder pattern. {{% /tab %}} {{% tab header="Python" %}} @@ -31,7 +31,7 @@ To start a driver with a default service instance: **Note**: .NET Service classes allow values to be set as properties. {{% /tab %}} {{% tab header="Ruby" %}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L12-L13" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L14-L15" >}} **Note**: Ruby Service classes allow values to be set either as arguments in the constructor or as attributes. {{% /tab %}} {{< tab header="JavaScript" >}} @@ -49,19 +49,19 @@ If you cannot update Selenium or have an advanced use case, here is how to speci {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L35" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L25-L26" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L12" >}} +{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L15" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.9" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L24" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L25" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L18" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L22" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -77,18 +77,18 @@ If you want the driver to run on a specific port, you may specify it as follows: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L44" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L33" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L20" >}} +{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L23" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L33" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L34" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L25" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L29" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/drivers/service.ja.md b/website_and_docs/content/documentation/webdriver/drivers/service.ja.md index 8de1fde5a8ae..1dfc6cd83e79 100644 --- a/website_and_docs/content/documentation/webdriver/drivers/service.ja.md +++ b/website_and_docs/content/documentation/webdriver/drivers/service.ja.md @@ -18,7 +18,7 @@ To start a driver with a default service instance: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L34-L36" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L15-L16" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} @@ -28,7 +28,7 @@ To start a driver with a default service instance: {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L17-L18" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L12-L13" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L14-L15" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -45,19 +45,19 @@ If you can not update Selenium or have an advanced use case here is how to speci {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L35" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L25-L26" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L12" >}} +{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L15" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.9" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L24" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L25" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L18" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L22" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -73,18 +73,18 @@ If you want the driver to run on a specific port, you may specify it as follows: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L44" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L33" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L20" >}} +{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L23" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L33" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L34" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L25" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L29" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/drivers/service.pt-br.md b/website_and_docs/content/documentation/webdriver/drivers/service.pt-br.md index 8de1fde5a8ae..1dfc6cd83e79 100644 --- a/website_and_docs/content/documentation/webdriver/drivers/service.pt-br.md +++ b/website_and_docs/content/documentation/webdriver/drivers/service.pt-br.md @@ -18,7 +18,7 @@ To start a driver with a default service instance: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L34-L36" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L15-L16" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} @@ -28,7 +28,7 @@ To start a driver with a default service instance: {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L17-L18" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L12-L13" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L14-L15" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -45,19 +45,19 @@ If you can not update Selenium or have an advanced use case here is how to speci {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L35" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L25-L26" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L12" >}} +{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L15" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.9" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L24" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L25" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L18" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L22" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -73,18 +73,18 @@ If you want the driver to run on a specific port, you may specify it as follows: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L44" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L33" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L20" >}} +{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L23" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L33" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L34" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L25" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L29" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/drivers/service.zh-cn.md b/website_and_docs/content/documentation/webdriver/drivers/service.zh-cn.md index e28cd7f30a91..b2535e5f17b1 100644 --- a/website_and_docs/content/documentation/webdriver/drivers/service.zh-cn.md +++ b/website_and_docs/content/documentation/webdriver/drivers/service.zh-cn.md @@ -18,7 +18,7 @@ To start a driver with a default service instance: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L34-L36" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L15-L16" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} @@ -28,7 +28,7 @@ To start a driver with a default service instance: {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L17-L18" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L12-L13" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L14-L15" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -45,19 +45,19 @@ If you can not update Selenium or have an advanced use case here is how to speci {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L35" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L25-L26" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L12" >}} +{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L15" >}} {{< /tab >}} {{< tab header="CSharp" >}} {{< badge-version version="4.9" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L24" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L25" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L18" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L22" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} @@ -73,18 +73,18 @@ If you want the driver to run on a specific port, you may specify it as follows: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L44" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L33" >}} {{< /tab >}} {{< tab header="Python" >}} {{< badge-version version="4.11" >}} -{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L20" >}} +{{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L23" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L33" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L34" >}} {{< /tab >}} {{< tab header="Ruby" >}} {{< badge-version version="4.8" >}} -{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L25" >}} +{{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L29" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/waits.en.md b/website_and_docs/content/documentation/webdriver/waits.en.md index fb68b6046d8c..91e67b0dcc53 100644 --- a/website_and_docs/content/documentation/webdriver/waits.en.md +++ b/website_and_docs/content/documentation/webdriver/waits.en.md @@ -67,16 +67,16 @@ Solving our example with an implicit wait looks like this: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L45-L49" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L50" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L27-L31" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L27" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L39-L44" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L39" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L28-L32" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L28" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< gh-codeblock path="examples/javascript/test/waits/waits.spec.js#L37-L41" >}} @@ -100,18 +100,18 @@ Another nice feature is that, by default, the Selenium Wait class automatically {{% tab header="Java" %}} This example shows the condition being waited for as a _lambda_. Java also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L57-L63" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L67-L68" >}} {{% /tab %}} {{% tab header="Python" %}} This example shows the condition being waited for as a _lambda_. Python also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L38-L44" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L41-L42" >}} {{% /tab %}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L53-L59" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L56-L57" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L39-L45" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L42-L43" >}} {{< /tab >}} {{% tab header="JavaScript" %}} JavaScript also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) @@ -139,16 +139,16 @@ make sure that the code returns `true` when it is successful): {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} The easiest way to customize Waits in Java is to use the `FluentWait` class: -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L70-L80" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L82-L92" >}} {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L50-L55" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L53-L55" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L67-L78" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L70-L79" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L51-L59" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L54-L60" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/waits.ja.md b/website_and_docs/content/documentation/webdriver/waits.ja.md index bf6d9003b7a9..34d6419d6828 100644 --- a/website_and_docs/content/documentation/webdriver/waits.ja.md +++ b/website_and_docs/content/documentation/webdriver/waits.ja.md @@ -67,16 +67,16 @@ Solving our example with an implicit wait looks like this: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L45-L49" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L50" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L27-L31" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L27" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L39-L44" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L39" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L28-L32" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L28" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< gh-codeblock path="examples/javascript/test/waits/waits.spec.js#L37-L41" >}} @@ -100,18 +100,18 @@ Another nice feature is that, by default, the Selenium Wait class automatically {{% tab header="Java" %}} This example shows the condition being waited for as a _lambda_. Java also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L57-L63" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L67-L68" >}} {{% /tab %}} {{% tab header="Python" %}} This example shows the condition being waited for as a _lambda_. Python also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L38-L44" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L41-L42" >}} {{% /tab %}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L53-L59" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L56-L57" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L39-L45" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L42-L43" >}} {{< /tab >}} {{% tab header="JavaScript" %}} JavaScript also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) @@ -139,16 +139,16 @@ make sure that the code returns `true` when it is successful): {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} The easiest way to customize Waits in Java is to use the `FluentWait` class: -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L70-L80" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L82-L92" >}} {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L50-L55" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L53-L55" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L67-L78" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L70-L79" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L51-L59" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L54-L60" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/waits.pt-br.md b/website_and_docs/content/documentation/webdriver/waits.pt-br.md index 2a9cc4585985..8ea31356161f 100644 --- a/website_and_docs/content/documentation/webdriver/waits.pt-br.md +++ b/website_and_docs/content/documentation/webdriver/waits.pt-br.md @@ -67,16 +67,16 @@ Solving our example with an implicit wait looks like this: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L45-L49" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L50" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L27-L31" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L27" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L39-L44" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L39" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L28-L32" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L28" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< gh-codeblock path="examples/javascript/test/waits/waits.spec.js#L37-L41" >}} @@ -100,18 +100,18 @@ Another nice feature is that, by default, the Selenium Wait class automatically {{% tab header="Java" %}} This example shows the condition being waited for as a _lambda_. Java also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L57-L63" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L67-L68" >}} {{% /tab %}} {{% tab header="Python" %}} This example shows the condition being waited for as a _lambda_. Python also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L38-L44" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L41-L42" >}} {{% /tab %}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L53-L59" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L56-L57" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L39-L45" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L42-L43" >}} {{< /tab >}} {{% tab header="JavaScript" %}} JavaScript also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) @@ -139,16 +139,16 @@ make sure that the code returns `true` when it is successful): {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} The easiest way to customize Waits in Java is to use the `FluentWait` class: -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L70-L80" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L82-L92" >}} {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L50-L55" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L53-L55" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L67-L78" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L70-L79" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L51-L59" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L54-L60" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} diff --git a/website_and_docs/content/documentation/webdriver/waits.zh-cn.md b/website_and_docs/content/documentation/webdriver/waits.zh-cn.md index fd635083b496..eda64618554f 100644 --- a/website_and_docs/content/documentation/webdriver/waits.zh-cn.md +++ b/website_and_docs/content/documentation/webdriver/waits.zh-cn.md @@ -67,16 +67,16 @@ Solving our example with an implicit wait looks like this: {{< tabpane text=true langEqualsHeader=true >}} {{< tab header="Java" >}} -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L45-L49" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L50" >}} {{< /tab >}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L27-L31" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L27" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L39-L44" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L39" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L28-L32" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L28" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< gh-codeblock path="examples/javascript/test/waits/waits.spec.js#L37-L41" >}} @@ -100,18 +100,18 @@ Another nice feature is that, by default, the Selenium Wait class automatically {{% tab header="Java" %}} This example shows the condition being waited for as a _lambda_. Java also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L57-L63" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L67-L68" >}} {{% /tab %}} {{% tab header="Python" %}} This example shows the condition being waited for as a _lambda_. Python also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L38-L44" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L41-L42" >}} {{% /tab %}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L53-L59" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L56-L57" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L39-L45" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L42-L43" >}} {{< /tab >}} {{% tab header="JavaScript" %}} JavaScript also supports [Expected Conditions]({{< ref "support_features/expected_conditions" >}}) @@ -139,16 +139,16 @@ make sure that the code returns `true` when it is successful): {{< tabpane text=true langEqualsHeader=true >}} {{% tab header="Java" %}} The easiest way to customize Waits in Java is to use the `FluentWait` class: -{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L70-L80" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/waits/WaitsTest.java#L82-L92" >}} {{% /tab %}} {{< tab header="Python" >}} -{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L50-L55" >}} +{{< gh-codeblock path="examples/python/tests/waits/test_waits.py#L53-L55" >}} {{< /tab >}} {{< tab header="CSharp" >}} -{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L67-L78" >}} +{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Waits/WaitsTest.cs#L70-L79" >}} {{< /tab >}} {{< tab header="Ruby" >}} -{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L51-L59" >}} +{{< gh-codeblock path="examples/ruby/spec/waits/waits_spec.rb#L54-L60" >}} {{< /tab >}} {{< tab header="JavaScript" >}} {{< badge-code >}} From 34d435d17ec4685886ae9ab6a774506b32e15ac0 Mon Sep 17 00:00:00 2001 From: titusfortner Date: Thu, 2 Nov 2023 21:25:02 -0500 Subject: [PATCH 2/4] update versions for 4.15 [deploy site] --- website_and_docs/layouts/downloads/list.html | 10 +++++----- .../selenium-clients-and-webdriver-bindings.html | 14 +++++++------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/website_and_docs/layouts/downloads/list.html b/website_and_docs/layouts/downloads/list.html index 2c097909e64f..91857ecc5cc1 100644 --- a/website_and_docs/layouts/downloads/list.html +++ b/website_and_docs/layouts/downloads/list.html @@ -25,7 +25,7 @@

Latest stable version - 4.14.1 + 4.15.0

To use the Selenium Server in a Grid configuration see the @@ -58,13 +58,13 @@

- Download version 4.14.0.0 for: + Download version 4.15.0.0 for:

- 32 bit Windows IE (recommended) + 32 bit Windows IE (recommended)

- 64 bit Windows IE + 64 bit Windows IE

CHANGELOG @@ -107,7 +107,7 @@

C# NuGet

- Nuget latest release is 4.14.0 Released on October 9, 2023. + Nuget latest release is 4.15.0 Released on November 1, 2023.

  • diff --git a/website_and_docs/layouts/partials/selenium-clients-and-webdriver-bindings.html b/website_and_docs/layouts/partials/selenium-clients-and-webdriver-bindings.html index 9752f8f5dff6..d6feb91121b7 100644 --- a/website_and_docs/layouts/partials/selenium-clients-and-webdriver-bindings.html +++ b/website_and_docs/layouts/partials/selenium-clients-and-webdriver-bindings.html @@ -27,7 +27,7 @@

    Selenium Clients and WebDriver Language Bin

    Stable: - 4.14.0 (October 9, 2023) + 4.15.0 (November 1, 2023)

    @@ -54,8 +54,8 @@

    Selenium Clients and WebDriver Language Bin

    Stable: - - 4.14.0 (October 9, 2023) + + 4.15.0 (November 1, 2023)

    @@ -82,8 +82,8 @@

    Selenium Clients and WebDriver Language Bin

    Stable: - - 4.14.1 (October 12, 2023) + + 4.15.0 (November 1, 2023)

    @@ -111,7 +111,7 @@

    Selenium Clients and WebDriver Language Bin

    Stable: - 4.14.0 (October 9, 2023) + 4.15.1 (November 2, 2023)

    @@ -139,7 +139,7 @@

    Selenium Clients and WebDriver Language Bin

    Stable: - 4.14.0 (October 9, 2023) + 4.15.0 (November 1, 2023)

    From b5249d5bb052fd2f30e7dcfd9adb13ffb093a214 Mon Sep 17 00:00:00 2001 From: titusfortner Date: Thu, 2 Nov 2023 21:25:31 -0500 Subject: [PATCH 3/4] script to update versions --- scripts/update-versions.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 scripts/update-versions.sh diff --git a/scripts/update-versions.sh b/scripts/update-versions.sh new file mode 100755 index 000000000000..ad94cdde9924 --- /dev/null +++ b/scripts/update-versions.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +VERSION_STR="$1" +NEW_VERSION=$(echo "$VERSION_STR" | cut -d. -f2) +OLD_VERSION=$((NEW_VERSION - 1)) +NEXT_VERSION=$((NEW_VERSION + 1)) + +FILES=( + "website_and_docs/layouts/partials/selenium-clients-and-webdriver-bindings.html" + "website_and_docs/layouts/downloads/list.html" + "examples/java/build.gradle" + "examples/dotnet/SeleniumDocs/SeleniumDocs.csproj" + "examples/python/requirements.txt" + "examples/kotlin/pom.xml" + "examples/java/pom.xml" + "examples/javascript/package.json" + "examples/ruby/Gemfile" +) + +for FILE_PATH in "${FILES[@]}"; do + if [[ "$FILE_PATH" == "examples/ruby/Gemfile" ]]; then + sed -i '' -E "s/4\.$NEW_VERSION\.0/4.$NEXT_VERSION.0/g" "$FILE_PATH" + fi + + sed -i '' -E "s/4\.$OLD_VERSION\.[0-9]+/4.$NEW_VERSION.0/g" "$FILE_PATH" +done + +pushd examples/ruby +bundle install +popd + +pushd examples/javascript +npm install +popd \ No newline at end of file From 2eca83843c63ab96ac5921a0804457b057dd3ea4 Mon Sep 17 00:00:00 2001 From: titusfortner Date: Thu, 2 Nov 2023 21:42:37 -0500 Subject: [PATCH 4/4] Selenium 4.15 release blog post [deploy site] --- .../blog/2023/selenium-4-15-released.md | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 website_and_docs/content/blog/2023/selenium-4-15-released.md diff --git a/website_and_docs/content/blog/2023/selenium-4-15-released.md b/website_and_docs/content/blog/2023/selenium-4-15-released.md new file mode 100644 index 000000000000..bbbea2d88746 --- /dev/null +++ b/website_and_docs/content/blog/2023/selenium-4-15-released.md @@ -0,0 +1,135 @@ +--- +title: "Selenium 4.15 Released!" +linkTitle: "Selenium 4.15 Released!" +date: 2023-11-01 +tags: ["selenium"] +categories: ["releases"] +author: Titus Fortner [@titusfortner](https://titusfortner.com) +description: > + Today we're happy to announce that Selenium 4.15 has been released! +--- + +We're very happy to announce the release of Selenium 4.15.0 for Java, +Python, Javascript, Ruby, .NET and the Grid. +Links to everything can be found on our [downloads page][downloads]. + +### Highlights + + * Chrome DevTools support is now: v117, v118, and v119 (Firefox still uses v85 for all versions) + * Implemented Remote File Downloads + +#### Noteworthy changes per language + + * Java + * Numerous BiDi implementations + * Remove CDP version dependencies in the server + * Selenium Manager now gets copied to cache directory instead of being used from temp directory + * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG) + +
    + + * JavaScript + * Replaced calls to console.log with managed loggers + * Added several BiDi methods + * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md) + +
    + + * .NET + * Improved nuget packages metadata + * Allows starting service object directly + * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG) + +
    + + * Python + * Remove selenium manager accommodation for Conda + * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES) + +
    + + * Ruby + * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES) + +
    + + * Rust + * Support for automatic management of Firefox ESR + * Fix webview2 support + * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md) + + +### Contributors + +**Special shout-out to everyone who helped the Selenium Team get this release out!** + +#### [Selenium](https://github.com/SeleniumHQ/selenium) + +

    +
    +
    +{{< gh-user "https://api.github.com/users/pinterior" >}} +
    +
    +
    + +#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io) + +
    +
    +
    +{{< gh-user "https://api.github.com/users/Afranioalves" >}} +{{< gh-user "https://api.github.com/users/AnselmoPfeifer" >}} +{{< gh-user "https://api.github.com/users/BlazerYoo" >}} +{{< gh-user "https://api.github.com/users/luisfcorreia" >}} +{{< gh-user "https://api.github.com/users/pallavigitwork" >}} +{{< gh-user "https://api.github.com/users/sangcnguyen" >}} +{{< gh-user "https://api.github.com/users/sombo20" >}} +{{< gh-user "https://api.github.com/users/SripriyaPKulkarni" >}} +{{< gh-user "https://api.github.com/users/zacharyzollman" >}} +{{< gh-user "https://api.github.com/users/zViniicius" >}} +
    +
    +
    + +#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium) + +
    +
    +
    +{{< gh-user "https://api.github.com/users/luisfcorreia" >}} +{{< gh-user "https://api.github.com/users/msvticket " >}} +{{< gh-user "https://api.github.com/users/mtcolman" >}} +{{< gh-user "https://api.github.com/users/philippe-granet" >}} +{{< gh-user "https://api.github.com/users/sehaas" >}} +{{< gh-user "https://api.github.com/users/vietnd96" >}} +
    +
    +
    + +**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:** + +
    +
    +
    +{{< gh-user "https://api.github.com/users/bonigarcia" >}} +{{< gh-user "https://api.github.com/users/diemol" >}} +{{< gh-user "https://api.github.com/users/harsha509" >}} +{{< gh-user "https://api.github.com/users/joerg1985" >}} +{{< gh-user "https://api.github.com/users/nvborisenko" >}} +{{< gh-user "https://api.github.com/users/pujagani" >}} +{{< gh-user "https://api.github.com/users/shs96c" >}} +{{< gh-user "https://api.github.com/users/titusfortner" >}} +
    +
    +
    + +Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)! + +Happy testing! + +[downloads]: /downloads +[bindings]: /downloads#bindings +[team]: /project/structure +[BiDi]: https://github.com/w3c/webdriver-bidi + pFad - Phonifier reborn

    Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

    Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


    Alternative Proxies:

    Alternative Proxy

    pFad Proxy

    pFad v3 Proxy

    pFad v4 Proxy