Chuyển lệnh RemoteWebDriver của Java qua proxy
Cấu hình ClientConfig trên bộ thực thi lệnh khi chương trình Java cần tới dịch vụ WebDriver từ xa qua forward proxy.
Java runner → configured proxy → WebDriver service
remote browser → its own route → website
Với đường thứ nhất, cấu hình bộ thực thi lệnh Java:
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URI;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.HttpCommandExecutor;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.http.ClientConfig;
var proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("proxy.example", 8080));
var config = ClientConfig.defaultConfig()
.baseUri(URI.create("https://grid.example/"))
.proxy(proxy);
var executor = new HttpCommandExecutor(config);
var driver = new RemoteWebDriver(executor, new ChromeOptions());
Dùng endpoint Grid thật, bao gồm đường dẫn triển khai. Giữ các tùy chọn Chrome cần thiết và kết thúc phiên bằng driver.quit().
Đây là java.net.Proxy cho kết nối HTTP của chương trình Java. Capability org.openqa.selenium.Proxy của Selenium lại quản lý lưu lượng trang của trình duyệt; chỉ dùng thêm nó nếu đường thứ hai cũng cần proxy.
Lỗi tạo phiên hoặc gửi lệnh thuộc đường thứ nhất. Việc điều hướng về sau có thể lỗi ở đường thứ hai. Xác thực với bên trung gian của chương trình Java cần cơ chế mà lớp truyền tải HTTP đó hỗ trợ; callback xác thực của trình duyệt không cấu hình phần này.