#c# #selenium #microsoft-edge
Вопрос:
Я впервые пытаюсь использовать Селен. Я хотел бы иметь консольное приложение, которое открывает браузер, переходит на веб-сайт и выполняет некоторые действия.
Для этого я просмотрел несколько учебных пособий. Первый, который я нашел, находится здесь:
https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/?tabs=c-sharp
Я хотел бы автоматизировать Edge.
Первое, что я сделал, это получил свою версию Edge, которую, кстати, решил обновить, когда я перешел на страницу «О программе», что, несомненно, будет проблемой в будущем.
Я скачал файл, соответствующий моей версии, хотя по какой-то причине эта версия только x86, в то время как все остальные-x64…
Затем я отправился в NuGet и стал искать Селен.Веб-драйвер. Вероятно, потому, что я нацелен на 4.7.2, последняя версия-3.141, а не версия 4, но неважно. Я устанавливаю версию 3.
Я также добавляю ссылку на nuget в Microsoft.Edge.SeleniumTools, как указано в руководстве.
затем в руководстве говорится, что используйте этот код:
var options = new EdgeOptions();
options.UseChromium = true;
var driver = new EdgeDriver(options);
Однако у меня нет UseChromium
собственности, так что это не работает.
Я удалил его и использовал конструктор по умолчанию, однако это также не работает, потому что он не может найти драйвер.
Поэтому затем я передал путь к папке, в которой находится драйвер, в качестве параметра.
Это также не сработало, потому что он ищет файл с именем, отличным от имени, указанного в zip-файле драйвера edge. Он ищет microsoftwebdriver.exe
, пока zip-файл содержит msedgedriver.exe
. Возможно, в этом и заключается причина ошибки? На самом деле у него есть ссылка в исключении, когда он не может найти ее, чтобы загрузить, однако ссылка мертва.
Я переименовал файл и запустил код. Появилось окно консоли с информацией об отладке, и открылся браузер. Успех!
Затем я попытался зайти на веб-сайт с этим кодом:
driver.Url = "https://www.google.com";
Однако при этом я получил эти ошибки в окне консоли:
Запуск MSEdgeDriver 94.0.992.38 (55a0a486d5c4c1a7374dc28a7be702fee43b3b39) на порту 1307 разрешены только локальные подключения. Пожалуйста, посмотрите https://chromedriver.chromium.org/security-considerations для получения предложений по обеспечению безопасности MSEdgeDriver. MSEdgeDriver был успешно запущен.
DevTools прослушивает ws://127.0.0.1:1310/devtools/браузер/c4e7f6f6-46d3-447c-b26b-3ad231a6122f [29296:584:1001/203949.853:ОШИБКА:fallback_task_provider.cc(119)] У каждого визуализатора должна быть по крайней мере одна задача, предоставленная основным поставщиком задач. Если отображается резервная задача, это ошибка. Пожалуйста, зарегистрируйте новую ошибку и пометьте ее как зависимость от crbug.com/739782. [29296:26032:1001/203954.115:ОШИБКА:chrome_browser_main_extra_parts_metrics.cc(250)] crbug.com/1216328: Проверка состояния браузера по умолчанию запущена. Пожалуйста, сообщите, если нет сообщения о том, что это заканчивается. [29296:584:1001/203954.143:ОШИБКА:profile_manager.cc(1057)] Не удается создать профиль по пути C:UsersNibblyPigAppDataLocalMicrosoftEdgeUser ДанныеПо умолчанию [29296:584:1001/203954.143:ОШИБКА:profile_manager.cc(2010)] Не удается создать профиль по пути C:UsersNibblyPigAppDataLocalMicrosoftEdgeUser ДанныеПо умолчанию [29296:26032:1001/203954.176:ОШИБКА:chrome_browser_main_extra_parts_metrics.cc(254)] crbug.com/1216328: Проверка статуса браузера по умолчанию завершена.
Затем код завершает работу с OpenQA.Selenium.WebDriverException: 'unknown error: net::ERR_CONNECTION_TIMED_OUT
Я попытался найти в Google ошибку поставщика резервных задач, а также посмотреть на ошибку профиля, но информации очень мало, и я не знаю, что делать.
Интересно, может ли кто-нибудь посоветовать, какие шаги я мог бы предпринять, чтобы это сработало.
Комментарии:
1. Могу я узнать, есть ли у вас возможность проверить мой ответ? Я рад помочь, если у вас есть еще какие-либо вопросы.
Ответ №1:
Во-первых, если вы используете WebDriver с Selenium 3, необходимо установить пакет Selenium Tools для Microsoft Edge.
Вы импортировали не ту посылку? Убедитесь, что он использует Microsoft.Edge.Селениумтулс; нет using OpenQA.Selenium.Edge;
.
Это мой простой тест, и он хорошо работает:
public static void Main() {
var options = new EdgeOptions();
options.UseChromium = true;
options.BinaryLocation = @"C:Program Files (x86)MicrosoftEdgeApplicationmsedge.exe";
var driverPath = @"C:UsersAdministratorDesktop";
var driver = new EdgeDriver(driverPath, options);
driver.Url = "https://www.google.com/";
}
Примечание: Пожалуйста, измените параметры пути в соответствии с вашей собственной ситуацией.