我的HTML页面包含span
元素,onmouseover
,onmouseout
和onmousedown
已设置(我无法更改此页面)。
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)
一直被调用。
有人可以解释一下这里发生了什么,以及如何避免它?