0

Google Web Toolkit (GWT) を使用する Web サイトをテストしています。特に、Web サイトは GWT-LOG ウィンドウをポップアップ表示します。このウィンドウには、サイトで行われているすべてのバックグラウンド アクティビティが表示されます。

私はいくつかの Selenium テストを作成しており、GWT-LOG のエントリにアクセスできるようにする必要があります。

現在、XPath を使用して GWT-LOG のチャンクを取得できるコードを作成できました。以前現在の「ポインター」を使用して、GWT-LOG ウィンドウ内で最後に中断した場所を追跡しています。 .

/**
 * Adds each GWT-LOG entry (one line) between "prevXPC" and "curXPC" into an
 * ArrayList<String> -- one line per ArrayList index.
 */
public void parseString(ArrayList<String> list) {
    // Total count of gwt-log entries
    int curXPC = driver.findElements(By.xpath(gwtXPath)).size();

    // Empty the ArrayList
    list.clear();

    // Add elements to the ArrayList between pXPC and cXPC counts
    for (int i = prevXPC; i <= curXPC; i++) {
        String logEntryXPath = "/html/body/table/tbody/tr[2]/td/div/div/div/div[" + i + "]";
        String newEntry = driver.findElement(By.xpath(logEntryXPath)).getText();
        list.add(newEntry);
    }

    prevXPC = (curXPC + 1); // Set the previous XPath count to the current one.
}

すべてのログ エントリが GWT-LOG ウィンドウに表示されていることがわかっている場合、このコードは正常に機能します。しかし、サイトがサーバー情報を待機している場合など、いくつかのエントリが表示され、数秒後にさらにエントリが表示されるアクションを実行すると、私のコードはあまり効果的ではありません。

Seleniumを使用して、GWT-LOGエントリを常に「監視」して警告したり、新しいGWT-LOGエントリをArrayList<String>以前と同じように保存したりする方法はありますか?

それ以外の場合は、この問題に対抗するためにテストに Waits を追加する必要があります。待機の長さが長すぎたり短すぎたりする可能性があるため、これは最も理想的なオプションではありません。

4

0 に答える 0