在Java中使用Selenium webdriver如何调整textarea的大小/ 我想通过拖动元素的右下角来扩展textarea。
我尝试了类似的东西,但它根本没有改变元素
new Actions(webdriver).dragAndDropBy(element, height, width).perform()
答案 0 :(得分:2)
我没有任何东西可以测试这个问题,但是我猜测你使用的dragAndDropBy方法不起作用的原因是因为它不会点击元素的右下角。我相信你需要这样的东西:
Actions action = new Actions(driver);
action.moveToElement(toElement, xOffset, yOffset); //moves to bottom right corner
action.clickAndHold();
action.moveByOffset(xOffset, yOffset);
action.release();
action.perform();
偏移量取决于您提到的文本区域的大小。您可以在http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/interactions/Actions.html上查看Action类的更多信息。希望这会有所帮助。
答案 1 :(得分:0)
我认为您的代码无法正常工作的原因因为未包含build()方法,您可以尝试一下并告诉它现在是否正常工作 -
new Actions(webdriver).dragAndDropBy(element, height, width).build().perform();
答案 2 :(得分:0)
这可以使用JavaScriptExecutor接口完成。 JavaScriptExecutor是一个接口,它提供了通过selenium webdriver执行Javascript的机制,借助于此你可以更改textarea的rows和cols属性,因此textarea可以用它来调整大小。希望这会帮助你 -
public static void main(String[] args) {
ProfilesIni profile = new ProfilesIni();
FirefoxProfile a = profile.getProfile("default");
WebDriver driver = new FirefoxDriver(a);
driver.get("http://localhost/testfolder/textarea.html");
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('textarea').setAttribute('rows', '30')");
js.executeScript("document.getElementById('textarea').setAttribute('cols', '50')");
}
只需使用元素定位器找到textarea元素,然后设置' rows'和' cols'属性值。
我希望这会对你有所帮助。