Selenium JavaScript: de opdrachtverbinding van de externe WebDriver via een proxy laten lopen
Gebruik usingWebDriverProxy voor JavaScript WebDriver-opdrachten die naar een extern Selenium-eindpunt gaan.
Een JavaScript Selenium-script stuurt WebDriver-opdrachten naar de externe server voordat de browser van die server ergens heen kan navigeren. Als de opdrachtverbinding via een HTTP-proxy moet, configureer dan de WebDriver-proxy van de Builder:
const { Builder, Browser } = require("selenium-webdriver");
const driver = await new Builder()
.forBrowser(Browser.CHROME)
.usingServer(gridUrl)
.usingWebDriverProxy("http://proxy.example.net:8080")
.build();gridUrl is de echte Selenium-server of het gehoste WebDriver-eindpunt. Voor een publiek bereikbaar eindpunt waar die route is toegestaan, levert de HTTP-proxylijst kandidaten voor usingWebDriverProxy. Voer het fragment uit binnen een async-functie van CommonJS. Stop de driver wanneer de testsessie eindigt.
usingWebDriverProxy beheert de HTTP-verbindingen van de JavaScript-binding. Het stelt niet de proxycapaciteit van Chrome of een Chrome-startargument in.
Als het browserverkeer ook een tussenpartij nodig heeft, geef de bedoelde Chrome-opties dan apart op. Die browser draait op de externe machine, dus het proxy-eindpunt moet daar bereikbaar zijn. Een loopback-adres op de machine van het script is niet automatisch een loopback-dienst die de externe browser kan gebruiken.
Bepaal of de fout optreedt bij het maken van de WebDriver-sessie of bij het navigeren op een website. De twee fouten kunnen verschillende netwerkclients en verschillende proxybeleidsregels betreffen.