проверка состояния кнопки переключения bootstrap с помощью селена - PullRequest
0 голосов
/ 10 февраля 2020

у меня ниже html

    <div id="Show">
       <label style="width: 150px">Show options</label>
       <div class="toggle btn btn-default" data-toggle="toggle" data-bind="toggle:mySettings().ShowMe, css:{off:!mySettings().ShowMe()}">
          <div class="toggle-group">
                <label class="btn btn-primary toggle-on">ON</label>
                <label class="btn btn-default active toggle-off">OFF</label>
                <span class="toggle-handle btn btn-default"></span>
           </div>
        </div>
    </div>

Я хочу посмотреть, включена кнопка или выключена. Если он включен, то я хочу выключить его и наоборот. Поэтому я попробовал приведенный ниже код, чтобы включить

var statusOfButton = WebDriver.WaitFor(
            ExpectedConditions.ElementExists(By.XPath("//label[@class='btn btn-primary toggle-on']")),
            TimeSpan.FromSeconds(5));



        if (!statusOfButton.Selected)
        {
           var offButtonElement =  WebDriver.WaitFor(
                ExpectedConditions.ElementExists(By.XPath("//label[@class='toggle btn btn-default off']")),
                TimeSpan.FromSeconds(2));
           offButtonElement.Click();


        }

Это сработало для первого экземпляра при запуске теста. Изначально кнопка была выключена, поэтому она была включена. В следующий раз, когда тест запустился, кнопка была включена, а затем я получил ошибку в этой строке, говорящую, что такой элемент не найден.

         var offButtonElement =  WebDriver.WaitFor(
                ExpectedConditions.ElementExists(By.XPath("//label[@class='toggle btn btn-default off']")),
                TimeSpan.FromSeconds(2));

Как это исправить?

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Ваш селектор для кнопки выключения, кажется, сломан.

На кнопке нет класса off , но есть переключатель

0 голосов
/ 10 февраля 2020

Похоже, ваши классы не соответствуют классам, указанным в вашем XPath. Кстати, если вы хотите найти элемент, содержащий некоторые классы, вы должны использовать label[contains(@class, 'your-classses here')]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...