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.

Gerelateerde artikelen