0

アプリケーションに fluentlenium を使用してテストを行っていますが、いくつかのエラーが発生しています。Play Framework と Slickgrid を使用してグリッドを作成しています。Slickgrid は JavaScript でグリッドを動的に作成します。作成される構造は次のようになります。

<div id=”grid”&gt;
<div class=”header”&gt;
    <div class=”slickgrid-column-header column-1”&gt;Column 1 </div>
    <div class=”slickgrid-column-header column-2”&gt;Column 2 </div>
    <div class=”slickgrid-column-header column-2”&gt;Column 2 </div>
</div>
<div class=”viewport”&gt;
    <div class=”canvas”&gt;
        <div class=”slick-row row-1”&gt;
            <div class=”slick-cell l0 r0> Column 1 Row 1</div>
            <div class=”slick-cell l1 r1> Column 2 Row 1</div>
            <div class=”slick-cell l2 r2> Column 3 Row 1</div>
        </div>
        <div class=”slick-row row-2”&gt;
            <div class=”slick-cell l0 r0> Column 1 Row 2</div>
            <div class=”slick-cell l1 r1> Column 2 Row 2</div>
            <div class=”slick-cell l2 r2> Column 3 Row 2</div>
        </div>
    </div>
</div>
</div>

通常、fluentlenium でソース コードを表示すると、すべてのソース コードが表示されますが、私の場合、いくつかの slickgrid コード行が欠落しています。そして、この欠けている行は私が必要とする行です。このコードは、ページ ソースを取得する簡単なテストを作成します。

@Test
   public final void fakeTest() {
         final int port = 3333;
     running(testServer(port, fakeApplication()), HTMLUNIT, 
         new Callback<TestBrowser>() {
          @Override
         public void invoke(final TestBrowser browser) throws Throwable {
                browser.goTo("http://localhost:3333/fake");
                    System.out.println(browser.pageSource());
         }
          });
   }

出力は次のようになります。

<html>
<head> <title> </title> </head>
<body>
    <div id=”grid>
        <div class=”header”&gt;
            <div class=”slickgrid-column-header column-1”&gt;Column 1 </div>
            <div class=”slickgrid-column-header column-2”&gt;Column 2 </div>
            <div class=”slickgrid-column-header column-2”&gt;Column 2 </div>
            </div>
                <div class=”viewport”&gt;
            <div class=”canvas”&gt;</div>
            </div>
    </div>
</body>
</html>

ご覧のとおり、セルが表示されず、セルの FluentWebElement でクリックをシミュレートしたり、セルの値を取得したりできません。

4

1 に答える 1

1

あなたはあなたが書いた能力を持っています:

  • ページに移動
  • ソースをすぐに印刷する

そこで何が起こったのか : Slickgrid のものはまだ生成されていません。あなたがそう望むなら、あなたは待たなければなりません。

したがって、goTo(page) と の間のようなもので await api を使用します。

await().atMost(5, TimeUnit.SECONDS).until(".slick-row").isPresent()

またはあなたがより適切だと思うもの。クラス slick-row を持つ要素が見つかるまで、最大で 5 秒待機します。

于 2013-05-14T13:32:29.147 に答える