为了账号安全,请及时绑定邮箱和手机立即绑定

WebDriver JavaScriptExecutor 未单击按钮

WebDriver JavaScriptExecutor 未单击按钮

C#
撒科打诨 2021-06-29 13:58:39
我在 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>
查看完整描述

2 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

要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();


查看完整回答
反对 回复 2021-07-10
  • 2 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信