【问题标题】:How to increase HTML table column width using webdriver如何使用 webdriver 增加 HTML 表格列宽
【发布时间】:2013-11-20 13:47:05
【问题描述】:

目前我正在尝试使用 Selenium webdriver 自动执行增加 HTML 表格列宽的步骤。

知道我可以得到 x 和 y 坐标的索引 findElement(By.cssSelector("<Css locator>").getLocation();

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

【问题讨论】:

    标签: java javascript selenium webdriver selenium-webdriver


    【解决方案1】:

    您可以使用Javascript Executor

    WebDriver driver;
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("document.querySelector('<CSSLOCATOR>').setAttribute('width', <WIDTH>)");
    

    您在&lt;CSSLOCATOR&gt;&lt;WIDTH&gt; 中填写您需要的内容。

    【讨论】:

    • 看看我们何时尝试设置宽度。它设置列标题值。我的意思是 Javascript 正在尝试设置一个字段值。假设我们有列名“学校”。如果您设置了列标题的宽度。Javascript 执行程序只在该页面中设置标题名称。如果您通过单击下一个按钮转到下一页,则已消失。
    【解决方案2】:

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

    $(选择器).width(值);

    示例用法 String aScript = "jQuery(\"" + CSS_TABLE_HEADER_BY_COL_NAME + "\").width(%s)";

    jse.executeScript(aScript );
    

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

    【讨论】:

      【解决方案3】:

      如果它是静态表,那么我们可以添加 attirbute (不是 setAttribute,因为我们需要添加新的属性 'width') 'width' 与该标签。

      String tableJS = "document.getElementsByTagName('table')[0].style.width='1000px'";
      js.executeScript(tableJS);
      

      注意:如果单元格或表格宽度由外部 CSS 处理,那么这可能不起作用。

      第二种方式:如果我们有可调整大小的表格,那么我们可以找到“调整大小”的元素并通过使用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");
              }
      

      【讨论】:

        猜你喜欢
        • 2011-01-17
        • 2017-05-04
        • 1970-01-01
        • 1970-01-01
        • 2018-07-29
        • 2016-02-21
        • 1970-01-01
        • 2013-02-14
        • 2013-07-02
        相关资源
        最近更新 更多