Java runner → configured proxy → WebDriver service
remote browser → its own route → website

למסלול הראשון, הגדירו את מבצע הפקודות של 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());

השתמשו בנקודת הקצה האמיתית של Grid, כולל הנתיב שבו נפרסה. השאירו את אפשרויות Chrome הנדרשות וסיימו את הסשן באמצעות driver.quit().

זהו java.net.Proxy עבור חיבור HTTP של יישום Java. ה־capability ‏org.openqa.selenium.Proxy של Selenium שולט דווקא בתעבורת הדפים של הדפדפן; הגדירו גם אותו רק אם המסלול השני צריך פרוקסי.

כשל ביצירת סשן או בשליחת פקודה שייך למסלול הראשון. ניווט מאוחר יותר עשוי להיכשל במסלול השני. אימות מול המתווך של יישום Java דורש שיטה שתעבורת HTTP הזאת תומכת בה; callback לאימות בדפדפן אינו מגדיר אותה.

מאמרים קשורים