Java 如何使用webdriver增加HTML表格列宽

Java 如何使用webdriver增加HTML表格列宽,java,javascript,selenium,webdriver,selenium-webdriver,Java,Javascript,Selenium,Webdriver,Selenium Webdriver,目前,我正在尝试使用SeleniumWebDriver自动化增加HTML表列宽的步骤 我知道我可以得到x和y坐标的指数 findelelement(通过.cssSelector(“”.getLocation(); 但是我想知道是否可以使用相同的概念来增加列的宽度。您可以使用 WebDriver; JavascriptExecutor js=(JavascriptExecutor)驱动程序; js.executeScript(“document.querySelector(“”).setAttri

目前,我正在尝试使用SeleniumWebDriver自动化增加HTML表列宽的步骤

我知道我可以得到x和y坐标的指数
findelelement(通过.cssSelector(“”.getLocation();

但是我想知道是否可以使用相同的概念来增加列的宽度。

您可以使用

WebDriver;
JavascriptExecutor js=(JavascriptExecutor)驱动程序;
js.executeScript(“document.querySelector(“”).setAttribute('width',)”);

您可以在
中填写所需内容。

我的问题的答案是jquery的简单用法

$(选择器)。宽度(值)

示例用法 字符串aScript=“jQuery(\”“+CSS\u TABLE\u HEADER\u BY\u COL\u NAME+“\”)。宽度(%s)”


希望这能解决大多数人在selenium中增加列宽的问题。

如果它是静态表,那么我们可以添加attirbute(而不是setAttribute,因为我们需要添加新的属性“width”)“width”和该标记

String tableJS = "document.getElementsByTagName('table')[0].style.width='1000px'";
js.executeScript(tableJS);
注意:如果单元格或表格宽度由外部CSS处理,则这可能不起作用

第二种方法:如果我们有resizble表,那么我们可以找到“resizer”的元素,并使用Action类应用以下解决方案:

if (resizeableElement.isDisplayed()) {
            Actions action = new Actions(driver);
            action.clickAndHold(resizeableElement).moveByOffset(100, 100).release().build().perform();
        } else {
            System.out.println("Element was not displayed to drag");
        }

请看我们何时尝试设置宽度。它设置了列标题值。我的意思是Javascript正在尝试设置一个字段值。假设我们有列名称“School”。如果您设置了列标题的宽度。Javascript执行器在该页面中只设置标题名称。如果您通过单击“下一步”按钮转到下一页,则该情况已不复存在。
String tableJS = "document.getElementsByTagName('table')[0].style.width='1000px'";
js.executeScript(tableJS);
if (resizeableElement.isDisplayed()) {
            Actions action = new Actions(driver);
            action.clickAndHold(resizeableElement).moveByOffset(100, 100).release().build().perform();
        } else {
            System.out.println("Element was not displayed to drag");
        }