我有一个提交按钮,如下所示:
<input type="submit" class="btn btn-info pull-right save_button" id="save_button" value="Save"/>
使用JQuery我附加一个onclick事件以弹出一个确认框:
$('body').on("click", ".save_button", function() {
bootbox.confirm("Do you want these changes to be live in the website?",
function(result) {
if(result) {
$("#editPageForm").parsley().validate();
if( $("#editPageForm").parsley().isValid()) {
$("#editPageForm").submit();
}
}
});
return false;
});
当我手动测试此步骤时,一切正常,表单已经过验证并显示确认框,按下确定按钮后会按预期保存内容。
但如果我使用Selenium测试,我看到所有步骤都正常,但是当按下保存按钮而不是触发此功能时,它只需提交表单。
这是用于创建驱动程序的代码:
FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents(true);
return new FirefoxDriver(profile);
其他Javascript代码确实有效,但我遇到了这个特定的问题。
我使用的是FF44和selenium驱动程序我试过2.48.2,2.49.1,2.50并且没有一个工作
你们有没有遇到类似的问题?
由于
答案 0 :(得分:0)
可能是因为页面没有完全呈现,因此点击监听器尚未注册。添加等待可以解决您的问题,例如:
WebDriverWait buttonWait = new WebDriverWait(driver, 30L);
buttonWait.until(ExpectedConditions.visibilityOfElementLocated(By.id("someButton")));