猿问

WebDriver JavaScriptExecutor 未单击按钮

我在 C# 和 NUnit 中使用 Selenium WebDriver。被测应用程序有一个 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>


撒科打诨
浏览 144回答 2
2回答

蓝山帝景

要Click()使用文本作为NEXT调用按钮,您需要引入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();
随时随地看视频慕课网APP
我要回答