Java 对于通过ajax提交的表单,Selenium测试用例失败
我有一个简单的登录页面,它是使用AJAX提交的。表单操作是“登录”。 登录的servlet映射如下所示:Java 对于通过ajax提交的表单,Selenium测试用例失败,java,selenium,jsp,selenium-webdriver,ajaxform,Java,Selenium,Jsp,Selenium Webdriver,Ajaxform,我有一个简单的登录页面,它是使用AJAX提交的。表单操作是“登录”。 登录的servlet映射如下所示: <servlet-mapping> <servlet-name>Login</servlet-name> <url-pattern>/Login</url-pattern> </servlet-mapping> <servlet> <servlet-name>Login&l
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>devops.ilp1.controllerWithoutDb.UserLoginController</servlet-class>
</servlet>
有人能帮忙吗?这三种解决方案中的任何一种都可以轻松工作: 解决方案1: 使用actions类单击 点击 解决方案2: 使用actions类在元素上移动鼠标并单击 act.movetoElement(按钮)。单击() 解决方案3:
您可以尝试使用JavaScriptExecutor问题在于firefox webdriver。它似乎没有加载JQuery脚本。
我改用了Chrome,效果很好。我尝试使用action类。它不起作用。仍将转到localhost:xxxx/loginId您是否尝试了一些等待按钮。单击()?在你可以为主页标题做断言之前。是的,我也试过了,但也没用,
<form id="someform" action=Login method="post">
<input type="text" class="fadeIn first" name="email" placeholder="Enter Email">
<input type="password" class="fadeIn second" name="password" placeholder="Enter Password">
<button class="fadeIn third" type="submit">Login</button>
</form>
<script>
$(document).on("submit", "#someform", function(event) {
var $form = $(this);
$.post($form.attr("action"), $form.serialize(), function(response) {
if(response){
$('#someMsg').text(response).show().delay(2500).fadeOut("slow");
}else{
document.location = "Home";
}
});
event.preventDefault();
});
public void loginSuccess() {
driver.get("http://localhost:6080/ILP_Bookstore");
WebElement email = driver.findElement(By.name("email"));
WebElement pass = driver.findElement(By.name("password"));
WebElement button = driver.findElement(By.xpath("/html/body/div[1]/div/form/button"));
email.sendKeys("govind@yahoo.com");
pass.sendKeys("govind");
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.visibilityOf(button));
button.click();
assertTrue(driver.getTitle().equals("HomePage"));
}