WebDriver JavaScriptExecutor не нажимает на кнопку - PullRequest
0 голосов
/ 29 мая 2018

Я использую Selenium WebDriver с C # и NUnit.У тестируемого приложения есть кнопка, которую Selenium не будет идентифицировать.Я попробовал все обычные локаторы, включая различные операторы XPath, Id, CSSSelector и т. Д. Во всех случаях происходит NullReferenceException.

Затем я попробовал следующее:

IJavaScriptExecutor javaScript = (IJavaScriptExecutor)Driver.Instance;

javaScript.ExecuteScript("document.getElementById('listingstep1').click();

Это такжерезультаты в NullReferenceException.Другие кнопки в приложении можно нажимать без ошибок.Эта конкретная кнопка выглядит следующим образом:

<div class="space-top-4 mdl-layout__canvas-action-hide-sm">
    <a id="listing-step1" href="javascript:void(0)">
        <button class="mdl-button md-min mdl-color--blue mdl-color-text--white mdl-js-button mdl-button--raised mdl-js-ripple-effect" data-       upgraded=",MaterialButton,MaterialRipple">
                    NEXT
            <span class="mdl-button__ripple-container">
                <span class="mdl-ripple"></span>
            </span>
        </button>
    </a>
</div>

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Чтобы вызвать Click() на кнопке с текстом СЛЕДУЮЩАЯ , вам нужно вызвать WebDriverWait , и вы можете использовать следующий кодовый блок:

new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//button[@class='mdl-button md-min mdl-color--blue mdl-color-text--white mdl-js-button mdl-button--raised mdl-js-ripple-effect']//span[@class='mdl-button__ripple-container']/span[@class='mdl-ripple']"))).Click();
0 голосов
/ 29 мая 2018

Попробуйте,

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", driver.findElement(By.id('listing-step1')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...