فرستادن فرمانهای RemoteWebDriver جاوا از طریق پراکسی
وقتی برنامهٔ جاوا باید از طریق پراکسی مستقیم به سرویس WebDriver راه دور برسد، ClientConfig را روی اجراکنندهٔ فرمان تنظیم کنید.
Java runner → configured proxy → WebDriver service
remote browser → its own route → website
برای مسیر اول، اجراکنندهٔ فرمان جاوا را تنظیم کنید:
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());
از نقطهٔ اتصال واقعی Grid همراه با مسیر استقرار آن استفاده کنید. گزینههای لازم Chrome را نگه دارید و نشست را با driver.quit() تمام کنید.
این java.net.Proxy برای اتصال HTTP برنامهٔ جاواست. در مقابل، capability org.openqa.selenium.Proxy در Selenium روی ترافیک صفحات مرورگر اثر میگذارد؛ فقط وقتی مسیر دوم هم پراکسی میخواهد، آن را نیز به کار ببرید.
خطای ایجاد نشست یا ارسال فرمان به مسیر اول مربوط است. پیمایش بعدی ممکن است در مسیر دوم شکست بخورد. احراز هویت نزد واسطهٔ برنامهٔ جاوا به روشی نیاز دارد که آن انتقال HTTP پشتیبانی میکند؛ callback احراز هویت مرورگر آن را تنظیم نمیکند.