无休止的onmouseover&在onmousedown事件之后onmouseout

时间:2014-02-04 14:00:06

标签: javascript selenium

我的HTML页面包含span元素,onmouseoveronmouseoutonmousedown已设置(我无法更改此页面)。

onmouseover将类设置为tt_high,这会使文本加下划线。

onmouseout删除了tt_high类,以便不再对下划线加下划线。

onmousedown<div id="bar">元素内创建新的div。

这是HTML代码:

<html>
    <head>
        <style type="text/css">
            .tt_high {
                text-decoration: underline;
            }
        </style>
    </head>
    <body>
        <span id="foo" onmousedown="fooClicked()"
            onmouseover="highlightFoo(1)"
            onmouseout="highlightFoo(0)">Foo</span>

        <div id="bar"></div>

        <script type="text/javascript">
            var highlightFoo = function(active) {
                console.log('highlight ' + active);

                var r = document.getElementById('foo');
                if (r != null) {
                    r.className = (active) ? 'tt_high' : '';
                }
            };

            var fooClicked = function() {
                var newDiv = document.createElement('div');
                newDiv.innerText = 'FooBar';

                document.getElementById('bar').appendChild(newDiv);
            };
        </script>
    </body>
</html>

请注意highlightFoo函数有console.log。我将this上传到我的bitbucket帐户。

现在我想在IE9中使用Selenium单击此元素:

public void clickFoo() throws Exception {
    WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),
        DesiredCapabilities.internetExplorer());

    driver.get("http://walery.bitbucket.org/misc/highlightError.html");

    WebElement element = driver.findElement(By.id("foo"));
    element.click();
}

我没有退出WebDriver,因此IE仍然存在。现在打开控制台(F12 - &gt;控制台),您会看到highlightFoo(0) - highlightFoo(1)一直被调用。

有人可以解释一下这里发生了什么,以及如何避免它?

0 个答案:

没有答案