We occasionally have issues where we have used 'ClickAndWait' on a link that doesn't cause a postback. This leaves selenium endlessly waiting and hangs our build server.

I don't know if there is already some way to solve this. Here is my solution.

in selenium-executionloop.js I rewrote the 'pollUntilConditionTrue' funtion as follows...

    /**
     * Busy wait for waitForCondition() to become true, and then continue
     * command execution.
     */
    this.pollUntilConditionIsTrue = function () {
        LOG.info("Polling:");
        this.pollUntilConditionIsTrueWithTimeout(1000);
    };

    this.pollUntilConditionIsTrueWithTimeout = function (timeoutChances) {
        if (this.waitForCondition()) {
            this.waitForCondition = null;
            this.continueCommandExecutionWithDelay();
        } else {
            if (timeoutChances <= 0)
            {
                var message = "'AndWait' command timed out.";
                LOG.error(message);
                this.commandError(message);
                this.testComplete();
            }
            else window.setTimeout("testLoop.pollUntilConditionIsTrueWithTimeout("+ (timeoutChances -1) +")", 10);
        }
    };

I have not written tests for it or verified it worked on anything other than IE. However as it helped solve our problem I though I would mention it.

--
Nigel Thorne
Extreme Programmer & Coach
www.nigelthorne.com
_______________________________________________
Selenium-users mailing list
Selenium-users@lists.public.thoughtworks.org
http://lists.public.thoughtworks.org/mailman/listinfo/selenium-users

Reply via email to