Запустить событие, когда URL-адрес Selenium ChromeDriver изменится - PullRequest
0 голосов
/ 04 января 2019

Я использую Selenium ChromeDriver, и мне нужно обработать событие произвольного изменения URL-адреса, исходящего из отображаемой главы браузера (в основном, всех тех переходов, вызванных нажатием конечным пользователем на странице ).

В элементе управления .NET по умолчанию WebBrowser мы можем использовать WebBrowser.DocumentCompleted, которого нет в браузерах selenium.

Например:

ChromeDriver driver = new ChromeDriver();
driver.UrlChanged += OnUrlChanged; // the event I need

void OnUrlChanged(){
    //handle any url change here caused by the user navigating on the browser.
}

Как мне этого добиться?

1 Ответ

0 голосов
/ 04 января 2019

Я нашел "мерзкое" решение, которое WebDriverWait:

WebDriverWait wait = new WebDriverWait(_driver,TimeSpan.FromSeconds(6));

wait.Until(driver => driver.Url.Contains("urlpart"));

//code to be executed when the url will contain urlpart

Однако это не решит необходимость иметь событие, которое вызывается при изменении страницы, особенно из-за того, что описанный выше метод слишком сложен для процедурного кодирования.

...