如何使用硒驱动程序减少表中的列宽

时间:2019-04-01 15:24:54

标签: java selenium

我要在某些网站上自动化我要调整表“说明”列大小的功能,但是在使用下面提到的代码进行相同操作时,得到某种警告或错误,并且没有发生。

//这是我要更改宽度的“描述”列

    WebElement descr = driver.findElement(By.linkText("Description"));

    WebDriverWait wait = new WebDriverWait(driver, 25);
            wait.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Description")));

    int width_descr = descr.getSize().getWidth();
    int height_descr = descr.getSize().getHeight();
    System.out.println("Width of Description ="+width_descr);
    System.out.println("Height of Description ="+height_descr);

    int half_height_descr= height_descr/2;
    System.out.println("Half of Height of Description ="+half_height_descr);

    //Logger.getLogger("org.openqa.selenium").setLevel(Level.SEVERE);

    Actions builder = new Actions(driver);

    Action resizable = builder
            .moveToElement(descr, width_descr, height_descr)
            .clickAndHold()
            .moveByOffset(width_descr, 0)
            .release()
            .build();

    resizable.perform();

}

实际输出如下:-

Width of Description =242
Height of Description =27
Half of Height of Description =13

2019年4月1日晚上8:35:54 org.openqa.selenium.interactions.Actions moveToElement

信息:使用W3C Action命令时,偏移量是从元素的中心开始的-这是我进入控制台的警告。

并且UI上的列宽没有减小。

预期的输出:-我想减小列宽。

1 个答案:

答案 0 :(得分:0)

如果这是HTML5格式-您不能使用Actions类以及Robot框架来做到这一点。

您可以尝试制作Web元素的屏幕截图并将其与Sikuli库进行交互,例如:https://github.com/alexandrchumakin/Relay42ApiTest/blob/master/src/main/java/web/driver/WebDriverHelper.java#L35

或者您可以实现将实现所有这些神奇功能的JQuery。