Selenium WebDriver调整textarea的大小

时间:2014-02-07 22:19:06

标签: resize selenium-webdriver

在Java中使用Selenium webdriver如何调整textarea的大小/ 我想通过拖动元素的右下角来扩展textarea。

我尝试了类似的东西,但它根本没有改变元素

new Actions(webdriver).dragAndDropBy(element, height, width).perform()

3 个答案:

答案 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'属性值。

我希望这会对你有所帮助。