Selenium Firefox不附加onClick事件以提交按钮

时间:2016-01-28 23:12:33

标签: java jquery selenium-webdriver selenium-firefoxdriver

我有一个提交按钮,如下所示:

<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并且没有一个工作

你们有没有遇到类似的问题?

由于

1 个答案:

答案 0 :(得分:0)

可能是因为页面没有完全呈现,因此点击监听器尚未注册。添加等待可以解决您的问题,例如:

    WebDriverWait buttonWait = new WebDriverWait(driver, 30L);
    buttonWait.until(ExpectedConditions.visibilityOfElementLocated(By.id("someButton")));