在Xamarin UITest(使用葫蘆)我可以查詢有some text
,像這樣的元素:Xamarin UITest(葫蘆)查詢的非空文本屬性
app.WaitForElement(x => x.Marked("MyTextControl")
.Property("text")
.Contains("some text"));
我在reference docs看到有還有BEGINSWITH,LIKE等等,但是我沒有看到任何一種IsEmpty或IsNotEmpty。有沒有辦法找到一個文本不是空的元素?我期待看到一個長的方法,所以我可以做類似:
app.WaitForElement(x => x.Marked("MyTextControl")
.Property("text")
.Length() > 0);
是否有另一種方式來完成我所追求的?
如果我沒有弄錯,當你想斷言具有給定標識符的所有元素都是非空的,但是當你想查詢找到具有給定標識符的_only_元素時,非空,或者當您想要等待具有給定標識符_becomes_非空的元素時。 (我需要做後者。)我可以用循環,Thread.Sleep和自定義超時來破解它,但這更像是一種解決方法。看起來像Calabash查詢本身應該是可能的。 –
>我認爲它不適用於UIButtons text屬性將是按鈕的標題(如果有的話)。 – jmoody
@Zy我建議將第一個例子更新爲:'AppResult label = labelContainer?.FirstOrDefault();',因爲如果數組是空的,則使用FirstOrDefault()將返回null,而引用索引0,'[0 ]'會在數組爲空時拋出'NullReferenceException'或'ArrayIndexOutOfBounds'異常。我發現這很有幫助,因爲有時候這個元素不會出現在屏幕上。以下是我在GitHub中的示例:https://github.com/brminnick/UITestSampleApp/blob/master/UITestSampleApp/UITestSampleApp.UITests/Pages/ListPage.cs#L40 –