Невозможно выполнить какие-либо действия в модальном окне - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь автоматизировать свое приложение и не могу выполнить какие-либо действия в модальном окне.

Ниже приведен код HTML этого модального окна.

<div class="modal fade bs-modal-lg in" id="homeModal" tabindex="-1" style="display: block; padding-left: 16px;" aria-hidden="false"><div class="modal-backdrop fade in" style="height: 958px;"></div>
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header modal-header-dl " id="homeModalHeader">
                <a href="javascript:void(0)" onclick="ClosepopupModal()" class="pull-right dl-padding-top-10 dl-padding-right-20" role="button" title="Close">
                    <i class="zbox-button close"></i>
                </a>
            <h4 class="modal-title">XDS Authentication</h4></div>
            <div class="modal-body " id="homeModalBody"><div class="form-group dl-padding-bottom-20 dl-mg-left-right-5px">
    <input type="text" class="form-control" id="id-number" name="IDNumber" placeholder="SA ID number" value="" maxlength="13" onpaste="return onPaste(event)" onkeydown="return onKeyPress(event)" onkeyup="return onKeyUp(event)" onkeypress="return checkNumberAndClearTextBox('account-number')" onblur="checkLength(this, 13)">
    <small><span id="id-number-error" class="error-msg">&nbsp;</span></small>
    <div>
        <button type="button" id="register-btn" class="btn pull-right dl-button-primary dl-margin-right-0" onclick="GetClientDetails(event)">Retrieve Authentication Questions</button>
    </div>
</div>

Я должен ввести значение в текстовое поле и щелкнуть по кнопке в этом модальном окне, но не могу этого сделать.

Метод обработки окон не работает. Не удается обнаружить ошибку элемента.

driver.SwitchTo().Window(driver.WindowHandles[1]);
            IWebElement IDnumber = driver.FindElement(By.Id("id-number"));
            IDnumber.SendKeys("123456");
            IWebElement Authenticate = driver.FindElement(By.CssSelector(".btn.pull-right.dl-button-primary.dl-margin-right-0"));
            Authenticate.Click();
            IWebElement Skipbutton = driver.FindElement(By.CssSelector(".btn.pull-right.dl-button-secondary"));
            Skipbutton.Click();

Как правильно это сделать?

1 Ответ

0 голосов
/ 29 апреля 2020

Большинство модалов не требуют SwitchTo. Вы должны быть в состоянии взаимодействовать с ними напрямую.

Если вам нужно использовать ручки, попробуйте это.

    public static string SwitchToPopup()
    {
        var mainHandle = driver.CurrentWindowHandle;
        var handles = driver.WindowHandles;

        foreach (var handle in handles)
        {
            if (mainHandle == handle)
            {
                continue;
            }
            driver.SwitchTo().Window(handle);
            break;
        }
        var result = Url;
        return result;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...