0

テーブルのピクセル寸法を読み取る方法はありますか? パーセンテージはすでに表示されています 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 訂正: css ファイルの 1 つにこのクラスが定義されています: また、以前はページの水平方向のサイズ変更では、テーブルの可視性が 830px を超えて拡張されていませんでした。

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

だから今、 watir-webdriver関数からそのを〜95%に変更できるかどうかを確認したいと思います...(自由にサイズを変更できる表示画面とインラインに保ちます)

4

1 に答える 1

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%'
于 2012-02-09T20:42:00.990 に答える