Skip to content

Commit 66160a1

Browse files
committed
add example code for Service classes
1 parent cebb7f2 commit 66160a1

File tree

4 files changed

+226
-0
lines changed

4 files changed

+226
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
using System;
2+
using System.IO;
3+
using System.Linq;
4+
using Microsoft.VisualStudio.TestTools.UnitTesting;
5+
using OpenQA.Selenium;
6+
using OpenQA.Selenium.Chrome;
7+
using OpenQA.Selenium.Firefox;
8+
9+
namespace SeleniumDocs.Drivers
10+
{
11+
[TestClass]
12+
public class ServiceTest : BaseTest
13+
{
14+
[TestMethod]
15+
public void BasicService()
16+
{
17+
var service = FirefoxDriverService.CreateDefaultService();
18+
driver = new FirefoxDriver(service);
19+
}
20+
21+
[TestMethod]
22+
public void DriverLocation()
23+
{
24+
var path = Environment.GetEnvironmentVariable("GECKOWEBDRIVER") + "/geckodriver";
25+
var service = ChromeDriverService.CreateDefaultService(path);
26+
27+
driver = new ChromeDriver(service);
28+
}
29+
30+
[TestMethod]
31+
public void DriverPort()
32+
{
33+
var path = Environment.GetEnvironmentVariable("GECKOWEBDRIVER") + "/geckodriver";
34+
var service = FirefoxDriverService.CreateDefaultService();
35+
service.Port = 1234;
36+
37+
driver = new FirefoxDriver(service);
38+
}
39+
40+
[TestMethod]
41+
public void LogsToFile()
42+
{
43+
var service = ChromeDriverService.CreateDefaultService();
44+
var file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../selenium.log");
45+
46+
service.LogPath = file;
47+
48+
driver = new ChromeDriver(service);
49+
driver.Url = "https://www.selenium.dev/";
50+
51+
var lines = File.ReadLines(file);
52+
Assert.IsTrue(lines.First().Contains("Starting ChromeDriver"));
53+
}
54+
}
55+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package dev.selenium.drivers;
2+
3+
import com.google.common.io.ByteStreams;
4+
import dev.selenium.BaseTest;
5+
import java.io.File;
6+
import java.time.Duration;
7+
import org.junit.jupiter.api.AfterEach;
8+
import org.junit.jupiter.api.Test;
9+
import org.openqa.selenium.chrome.ChromeDriver;
10+
import org.openqa.selenium.chrome.ChromeDriverLogLevel;
11+
import org.openqa.selenium.chrome.ChromeDriverService;
12+
import org.openqa.selenium.chromium.ChromiumDriverLogLevel;
13+
import org.openqa.selenium.firefox.FirefoxDriver;
14+
import org.openqa.selenium.firefox.GeckoDriverService;
15+
import org.openqa.selenium.remote.service.DriverService;
16+
17+
public class ServiceTest extends BaseTest {
18+
private final File logLocation = new File("driver.log");
19+
private final File driverLocation = new File(System.getenv("CHROMEWEBDRIVER") + "/chromedriver");
20+
21+
@AfterEach
22+
public void quit() {
23+
driver.quit();
24+
}
25+
26+
@Test
27+
public void defaultService() {
28+
ChromeDriverService service = new ChromeDriverService.Builder().build();
29+
driver = new ChromeDriver(service);
30+
}
31+
32+
@Test
33+
public void setDriverLocation() {
34+
ChromeDriverService service = new ChromeDriverService.Builder()
35+
.usingDriverExecutable(driverLocation)
36+
.build();
37+
38+
driver = new ChromeDriver(service);
39+
}
40+
41+
@Test
42+
public void setPort() {
43+
ChromeDriverService service = new ChromeDriverService.Builder()
44+
.usingPort(1234)
45+
.build();
46+
47+
driver = new ChromeDriver(service);
48+
}
49+
50+
@Test
51+
public void logsToFileWithLogOutput() {
52+
ChromeDriverService service = new ChromeDriverService.Builder()
53+
.withLogFile(logLocation)
54+
.build();
55+
56+
driver = new ChromeDriver(service);
57+
}
58+
59+
@Test
60+
public void logsToFileProperty() {
61+
System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY,
62+
logLocation.getAbsolutePath());
63+
64+
driver = new ChromeDriver();
65+
}
66+
67+
@Test
68+
public void logsToStdoutWithLogOutput() {
69+
ChromeDriverService service = new ChromeDriverService.Builder()
70+
.withLogOutput(System.out)
71+
.build();
72+
73+
driver = new ChromeDriver(service);
74+
}
75+
76+
@Test
77+
public void logsToStdoutProperty() {
78+
System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY,
79+
logLocation.getAbsolutePath());
80+
81+
driver = new ChromeDriver();
82+
}
83+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import os
2+
import subprocess
3+
4+
from selenium import webdriver
5+
from selenium.webdriver.chrome.service import Service as ChromeService
6+
7+
8+
def test_basic_service():
9+
service = ChromeService()
10+
driver = webdriver.Chrome(service=service)
11+
12+
driver.quit()
13+
14+
def test_driver_location():
15+
driver_path = os.getenv('CHROMEWEBDRIVER') + 'chromedriver'
16+
service = ChromeService(executable_path=driver_path)
17+
18+
driver = webdriver.Chrome(service=service)
19+
20+
driver.quit()
21+
22+
23+
def test_driver_port():
24+
service = ChromeService(port=1234)
25+
26+
driver = webdriver.Chrome(service=service)
27+
28+
driver.quit()
29+
30+
31+
def test_log_to_file():
32+
log_path = 'chromedriver.log'
33+
service = ChromeService(log_path=log_path)
34+
35+
driver = webdriver.Chrome(service=service)
36+
37+
with open(log_path, 'r') as fp:
38+
assert "Starting ChromeDriver" in fp.readline()
39+
40+
driver.quit()
41+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# frozen_string_literal: true
2+
3+
require 'spec_helper'
4+
5+
RSpec.describe 'Service' do
6+
let(:file_name) { File.expand_path('driver.log') }
7+
let(:driver_path) { "#{ENV['CHROMEWEBDRIVER']}/chromedriver" }
8+
9+
after { FileUtils.rm_f(file_name) }
10+
11+
it 'has default service' do
12+
service = Selenium::WebDriver::Service.chrome
13+
@driver = Selenium::WebDriver.for :chrome, service: service
14+
end
15+
16+
it 'specifies driver location' do
17+
service = Selenium::WebDriver::Service.chrome
18+
service.executable_path = driver_path
19+
20+
@driver = Selenium::WebDriver.for :chrome, service: service
21+
end
22+
23+
it 'specifies driver port' do
24+
service = Selenium::WebDriver::Service.chrome
25+
service.port = 1234
26+
27+
@driver = Selenium::WebDriver.for :chrome, service: service
28+
end
29+
30+
it 'logs to file' do
31+
service = Selenium::WebDriver::Service.chrome
32+
service.log = file_name
33+
34+
@driver = Selenium::WebDriver.for :chrome, service: service
35+
36+
expect(File.readlines(file_name).size).to eq 4
37+
end
38+
39+
it 'logs to stdout' do
40+
service = Selenium::WebDriver::Service.chrome
41+
service.log = $stdout
42+
43+
expect {
44+
@driver = Selenium::WebDriver.for :chrome, service: service
45+
}.to output(/Starting ChromeDriver/).to_stdout_from_any_process
46+
end
47+
end

0 commit comments

Comments
 (0)