至于你说的硒click()
并不如预期的工作,你应该尝试使用JavascriptExecutor
触发MouseEvents
为如下: -
WebElement el = driver.findElement(By.id("checkboxId"));
JavascriptExecutor executor = (JavascriptExecutor)driver
executor.executeScript("function triggerMouseEvent (node, eventType) {"
+ "var clickEvent = document.createEvent ('MouseEvents');"
+ "clickEvent.initEvent (eventType, true, true);"
+ "node.dispatchEvent (clickEvent);"
+ "}triggerMouseEvent (arguments[0], 'mouseover');"
+ "triggerMouseEvent (arguments[0], 'mousedown');"
+ "triggerMouseEvent (arguments[0], 'mouseup');"
+ "triggerMouseEvent (arguments[0], 'click');", el);
Edited1: - 如果你想使你复选框可见使用executeScript
,并希望为PErF使用selenium
click()
ORM,尝试如下: -
el = (WebElement)executor.executeScript("arguments[0].style.display = 'block';return arguments[0];", el);
el.click();
Edited2: - 我想你没有指向正确的复选框,单击以我在你提供的HTML复选框ID看到可动态生成的,你应该实现WebDriverWait
TI等到复选框分享范围如下: -
JavascriptExecutor executor = (JavascriptExecutor)driver
WebElement el = (WebElement)executor.executeScript("return document.getElementById('flattendListproductLinesTree|[email protected]@isSelected')");
WebDriverWait wait = new WebDriverWait(driver, 10);
el = wait.until(ExpectedConditions.visibilityOf(el)));
el.click();
希望它能帮助... :)
平变化是一个事件处理程序。你不能像这样调用它来调用系统事件。 –
那我该如何解决这个问题呢? –
当你点击selenium方法点击()时发生了什么? –