Как предоставить Selenium из пакета Nuget модифицированный хромедрайвер? - PullRequest
0 голосов
/ 23 октября 2019

Я очень плохо знаком с тем, что собираюсь описать, поэтому, если есть лучший способ сделать это, пожалуйста, дайте мне знать.

Я пытаюсь изменить исходный код для chromedriverи используйте эту модифицированную версию с WebDriver от Selenium. До сих пор я получал исходный код для chromedriver из Chromium, модифицировал и компилировал его. У меня остался список dll и исполняемого файла для этого.

Ранее я использовал NuGet для получения пакетов Selenium.Webdriver и Selenium.Webdriver.Chromedriver, но я был смущен тем, как именно работает chromedriver. ,В папке [solution_name] \ packages \ Selenium.WebDriver.ChromeDriver.77.0.3865.4000 \ driver \ win32 я увидел этот chromedriver.exe, а в папке [solution_name] \ packages \ Selenium.WebDriver.ChromeDriver.77.0.3865.4000 \ build. я заметил файл .targets, внутри которого была строка, указывающая на местоположение .exe. Я подумал, что этого будет достаточно, чтобы заменить chromedriver.exe из NuGet с моим пользовательским встроенным исполняемым файлом, а также включить скомпилированные библиотеки DLL в эту папку. В итоге я получил сообщение об ошибке, что некоторые dll (например, base.dll, все файлы, которые я включил в этот каталог) отсутствовали.

Любая идея о том, как заставить эту конфигурацию работать, или снова,если есть более простой способ изменить исходный код chromedriver и использовать этот веб-драйвер Selenium?

Спасибо!

1 Ответ

0 голосов
/ 23 октября 2019

Если вы создали свой пользовательский chromedriver, то вы можете указать путь к моддированному драйверу перед его инициализацией. Это заставит его использовать указанный chromedriver вместо того, который указан в вашем $PATH

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();
...