Программа заходит на сайт, ищет кнопку авторизации, вводит логин и пароль, нажимает Enter, а далее необходимо дождаться, пока загрузится новая страница, и уже на ней найти следующую кнопку.
webElement = driver.FindElement(By.ClassName("fancybox")); // Находим элемент на станице по имени класса
webElement.Click();
webElement = driver.FindElement(By.Name("p_login")); // Находим поле для ввода логина
webElement.SendKeys(login); // Вводим сохраненный логин
webElement = driver.FindElement(By.Name("p_pass")); // Находим поле для ввода пароля
webElement.SendKeys(password + OpenQA.Selenium.Keys.Enter); // Вводим пароль и нажимаем Enter
Нужно написать какую-то функцию, которая будет ждать загрузки страницы, потому что поиск следующей кнопки сразу выдает исключение. Вот код поиска:
webElement = driver.FindElement(By.PartialLinkText("Преподавателю"));
webElement.Click();
Уверен, что здесь необходимо явное ожидание элемента. Отсюда сразу могу предложить такое (тут, правда, на java, но не вижу большой разницы):
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfAllElements(driver.findElement(By.PartialLinkText("Преподавателю")));
wait.until(ExpectedConditions.presenceOfElementLocated(By.PartialLinkText("Преподавателю")));
Ну а ещё, конечно, полезная статеечка: http://barancev.github.io/slow-loading-pages/
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок