在watir-webdriver中测量表的像素宽度

时间:2012-01-30 00:37:09

标签: html-table width pixel watir-webdriver dimension

有没有办法读取表格的像素尺寸?百分比已显示width="100%"。如果有助于探测,它在div内部。

我正在尝试获取宽度然后调整窗口大小以获取png屏幕截图(使用已有的Watir函数)。目前,因为它在页面中显示了自己的水平滚动条,所以该表仅截断到屏幕截图中的前几列,而垂直整个页面照常显示,无论浏览器窗口大小如何。

$browser.div(:id, "ctl27_divDetailFrame").table.row.cells.length

=> 23

告诉我它有23列,但可能会有所不同。

我已经用

缩小了屏幕字体

$browser.send_keys :home, [:control, "-"], [:control, "-"]

但这还不够,无论如何不应将字体大小减少到遗忘。

刮掉的来源:

<div id="ctl27_divDetailFrame">
    <div class="detail-table-wrapper">
        <div id="ctl27_pnlPositionsTable">
                        <table class="detail-table w-Positions" border="0" cellpadding="0" cellspacing="0" width="100%">
                            <tr class="detail-table-head">
                                <td><a class="hpc-column-sort SymbolHeadOSI" href="#" name="DetailSymbolHeader">Symbol</a><span class="common_icon-sort-up-orange_png" title="Sorted Ascending" style="margin-left: 3px; vertical-align:middle;"></span></td>
                                <td class="detail-heading-numeric"><a class="hpc-column-sort SymbolHeadOSI" href="#" name="DetailQuantityHeader">Qty</a></td>
.
.
.
                                <td class="detail-non-numeric"> LAST CELL of table </td>

                            </tr>
                        </table>

                    </div>
    </div>

我无处可见一个明确的width="99999px",我只能阅读。

2 CORRECTIONs:在其中一个css文件中定义了这个类: 并且,水平调整大小页面之前并没有将表格的可见性扩展到830px之外。

   div.detail-table-wrapper
    {
        width: 830px;
        overflow: auto;
        overflow-x: auto;
        overflow-y: hidden;
    }

所以现在我想看看我是否可以将宽度 watir-webdriver 函数更改为~95%...(使其与可见内联保持一致屏幕,我可以自由调整大小)

1 个答案:

答案 0 :(得分:1)

使用Watir-Webdriver for Firefox,我可以使用以下内容将宽度样式更改为95%:

$browser.execute_script("document.getElementById('ctl27_divDetailFrame')
      .getElementsByTagName('DIV')[0].style.width='95%';")

请注意,定位器基于HTML示例。根据该ID是否一致,您可能需要更好的定位器。例如,您可以使用http://www.boards.ie/vbulletin/showthread.php?p=59109660为ID执行正则表达式(但我尚未对其进行测试)。

除此之外:使用Watir,您可以使用以下代码直接执行此操作。但是,作为Watir-Webdriver的新手,我找不到类似的document()方法。

$ie.div(:index, 2).document.style.width = '95%'