我有一个简单的登录页面,该页面是使用AJAX提交的。表单操作为“登录”。 登录的servlet映射如下:
<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>
UserLoginController类发送在登录页面上显示的响应错误。如果errors =“”,则表明用户已登录。然后,该用户被重定向到例如localhost:xxxx / Home 手动工作正常。 当我使用Selenium进行相同的操作时,单击“提交”按钮后,页面导航到localhost:xxxx / Login,并且测试用例失败。
HTML:
<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"));
}
有人可以帮忙吗?
答案 0 :(得分:0)
这3个解决方案中的任何一个都可以轻松工作:
解决方案1: 使用动作类单击 act.click()
解决方案2: 使用动作类将鼠标移到元素上,然后单击 act.movetoElement(button).click()
解决方案3: 您可以尝试使用JavaScriptExecutor
答案 1 :(得分:0)
问题出在Firefox WebDriver。它似乎没有加载JQuery脚本。 我改用Chrome,它可以正常工作。