0

I.Expect.Text(" sometext ") には、指定されたセレクターを持つInメソッドが必要ですか?

継承した一部のテストにはInメソッドが追加されていないため、提供されたテキストがページに存在しないことがわかっている場合でも、テストに合格します。

http://fluent.stirno.com/docs/#asserts-text に関するドキュメントを確認しましたが、(とにかく私には) In セレクターが存在する必要があることは明らかではありません。私はそれが存在する必要があると仮定しています。

私が求めているのは、アサーションが正しく機能するためにInメソッドを追加する必要がある場合、ページ上の任意の div または p タグまたはクラスに「sometext」が表示されるかどうかを流暢に述べるにはどうすればよいかということです。全体でIDを使用しています。https://github.com/stirno/FluentAutomation/issues/133で役立つものを見つけました。

次のようなものは、AssertSyntaxProvider の拡張メソッドにラップできますが、扱いが面倒/不格好に見えますか?

        var texts = I.Find("html").Elements.Select(el => el.Item2().Text);
        I.Assert.True(() => texts.Any(t => t.Contains("statement1")));
        I.Assert.True(() => texts.Any(t => t.Contains("statement2")));
        I.Assert.True(() => texts.Any(t => t.Contains("statement3")));

助けてください!!

最後に - これは素晴らしいライブラリです!!!

4

1 に答える 1

2

はい、Inチェーンの実行ブロックとして必要です。FluentAutomation の拡張に専念できるようになってからしばらく経ちましたが、複数の要素に対してアサーションを行うのはそれほどうまくいきませんでした。

私はこれについて素晴らしい計画を持っていますが、実装する時間がありませんでした。

あなたの特定のテストに関しては、あなたは私が今使っているものに近いです:

I.Open("http://fluent.stirno.com");
var elements = I.FindMultiple("*").Children.Select(x => x());
I.Assert.True(() => elements.Any(x => x.Element.Text.Contains("v3.0 Released!")));

v3.1 にはこれに対処するためのより良い方法がいくつかありますが、これは少なくとも Sizzle の * セレクターを使用してすべての要素を取得します (警告: 本当に遅くなる可能性があるため、制限できる場合は "div,p,span" などを使用してください)。

于 2015-04-05T18:39:46.953 に答える