Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2017, 21:56   #1
leonidius
 
Регистрация: 07.03.2017
Сообщений: 4
По умолчанию Selenium нужно сделать так, чтобы если первая кнопка "Chat1" не нашлась, то нажималась вторая "Chat"

Не могу понять как правильно писать условие у меня есть две таких строчки кода:
Код:
          IWebElement chat1 = Browser.FindElement(By.Id("nomessage-incompatible-link"));
           chat1.Click(); 

            IWebElement chat = Browser.FindElement(By.Id("chatnow")); 
             chat.Click();
Первая и вторая строчка ищет на странице сайта кнопку и нажимает её нужно сделать так, чтобы если первая кнопка "Chat1" не нашлась, то нажималась вторая "Chat". Если не затруднит напишите как должно выглядеть условие если можно в нескольких вариантах например через if else, ||, &&,
leonidius вне форума Ответить с цитированием
Старый 15.03.2017, 19:19   #2
leonidius
 
Регистрация: 07.03.2017
Сообщений: 4
По умолчанию

Написал так, но получается только для 1-го исключения, если писать try и catch без указания ошибки . Я хочу сделать 2-а написал такой код и ничего не выходит. Обрабатывается try за ним всегда обрабатывается " catch (WebDriverException) " почему? ведь я указал ошибку которая вылезала во время отладки почему программа не пропускает её и не переходит к последнему catch?
Код:
Код: (C#)
                try
                {
                    IWebElement chat1 = Browser.FindElement(By.Id("nomessage-incompatible-link")); chat1.Click();
                    IWebElement message = Browser.FindElement(By.ClassName("wysiwyg_editor"));
                    message.SendKeys("Привет ");
                    IWebElement message1 = Browser.FindElement(By.Id("send_but")); message1.Click();
                }
                catch (WebDriverException)
                {
                    System.Threading.Thread.Sleep(3000);
                    Browser.Close();
                }
                catch 
                {
                    IWebElement message = Browser.FindElement(By.ClassName("wysiwyg_editor"));
                    message.SendKeys("Привет ");
                    IWebElement message1 = Browser.FindElement(By.Id("send_but")); message1.Click(); 
                    System.Threading.Thread.Sleep(3000);
                    Browser.Close();
                 }
ДА, Используется библиотека seleniumWebDriver.
leonidius вне форума Ответить с цитированием
Старый 15.03.2017, 20:06   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Если надо проверить существование элемента, то например
Код:
var links = Browser.FindElements(By.Id("nomessage-incompatible-link"));
if (links.Any())
{
    links.First()...
}

Цитата:
Сообщение от leonidius Посмотреть сообщение
ведь я указал ошибку которая вылезала во время отладки почему программа не пропускает её и не переходит к последнему catch?
Вы о чем? Почему он должен пропускать ее?

Наверно надо было сначала почитать учебник по C#, чтоб иметь представление о том как работает try catch, и только потом переходить на
Цитата:
Сообщение от leonidius Посмотреть сообщение
картинки женщин
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно сделать так, чтобы фигура перемещалась слева на право. Vladislav125 Паскаль, Turbo Pascal, PascalABC.NET 2 10.03.2017 17:14
Помогите с кодом! Нужно сделать так чтобы матрица шла против часовой стрелки Ирина112 Помощь студентам 0 30.11.2016 19:30
С++, делала задачу по примеру, нужно сделать так чтобы числа которые выводятся рандомно писались буквами, anabel123123 Помощь студентам 12 15.12.2014 10:13
как сделать так,чтобы он левой рукой до стены коснулся? и если можно чтобы двери лифта закрылись maxon56 Паскаль, Turbo Pascal, PascalABC.NET 0 07.06.2011 18:46
Как сделать так чтобы после изменения настроек стала активирована кнопка "Применить" ?? KWN, lnc Общие вопросы Delphi 7 04.12.2010 02:14