首页 > 解决方案 > submit() 不适用于 Selenium API

问题描述

我正在尝试使用 selenium api submit() 提交表单。Click() 肯定不会工作,因为它是表单按钮。元素是“提交”。element.submit() 但什么也没发生。我正在尝试一些 java 脚本解决方案来提交表单。这是html:

<form class="ng-pristinedfgd ngrg-valid">
<label class="input-width" for="userName">Username</label>
<input type="text" class="input-width form-input " name="userName" autocomplete="off">
<label class="input-width" for="password">Password</label>
<input type="password" class="input-width form-input " name="password" autocomplete="off">
<p class="forgot-utility">Need login help? Visit the utility website for direction.</p>
<button type="**submit**" class="blue-button">Share Energy Usage</button
</form>

任何帮助将非常感激。提前致谢。

标签: javaseleniumselenium-webdriverxpathwebdriver

解决方案


根据您共享的HTML,您可以click()按如下方式调用方法:

  • 爪哇click()

    driver.findElement(By.xpath("//button[@class='blue-button'][contains(.,'Share Energy Usage')]")).click();
    

注意:由于AUT是基于Angular的,因此如果您尝试在页面加载click()后立即调用,您必须按如下方式诱导WebDriverWait :

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//form[@class='ng-pristinedfgd ngrg-valid']//button[@class='blue-button'][contains(.,'Share Energy Usage')]"))).click();

推荐阅读