下面的代码声明了一个HtmlUnitDriver
启用了javascript的使用new HtmlUnitDriver(true)
,然后创建了一个JavaScriptExecutor
类似下面的代码
WebDriver driver = new HtmlUnitDriver(true);
JavascriptExecutor js = (JavascriptExecutor) ((HtmlUnitDriver)driver);
我找到了必须在其上添加属性的 html 标记
String xpathSrc = "//*[@id='formId']/table/tbody/tr/td/table/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr[4]/td[2]/input[2]";
String xpathDest = "//*[@id='formId']/table/tbody/tr/td/table/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr[8]/td[2]/input[2]";
WebElement elemSrc = driver.findElement(By.xpath(xpathSrc));
setAttributeValue(elemSrc, "value", src.toUpperCase());
WebElement elemDest = driver.findElement(By.xpath(xpathDest));
setAttributeValue(elemDest, "value", dest.toUpperCase());
然后我调用以下函数
public void setAttributeValue(WebElement elem, String attr, String value){
String scriptSetAttrValue = "arguments[0].setAttribute(arguments[1],arguments[2]);";
js.executeScript(scriptSetAttrValue, elem, attr, value);
}
但是经过我所有的努力,我无法执行代码,HtmlUnitDriver
但相同的代码可以有效地运行FirefoxDriver
or PhantomJsDriver
。由于它的速度,我倾向于使用 HtmlUnitDriver,但似乎没有任何效果。