C# 扩展函数<;AppQuery,AppQuery>;是否包含文本值?

C# 扩展函数<;AppQuery,AppQuery>;是否包含文本值?,c#,xamarin,xamarin.forms,xamarin.uitest,C#,Xamarin,Xamarin.forms,Xamarin.uitest,我正试图遵循贝西的做法,使用appquery 例如 using System; using Xamarin.UITest; using Xamarin.UITest.Queries; namespace ourapp.UITests.Pages { // Aliases Func<AppQuery, appQuery> with query using Query = Func<AppQuery, AppQuery>; public class

我正试图遵循贝西的做法,使用appquery

例如

using System;
using Xamarin.UITest;
using Xamarin.UITest.Queries;

namespace ourapp.UITests.Pages
{
    // Aliases Func<AppQuery, appQuery> with query
    using Query = Func<AppQuery, AppQuery>;

    public class SettingsPage : BasePage
    {
        readonly Query _logoutButton;

        protected override PlatformQuery Trait => new PlatformQuery
        {
            IOS = x => x.Id("settings_title"),
            Android = x => x.Id("settings_title"),
        };

        public SettingsPage()
        {
            _logoutButton = x => x.Id("logout_button");
        }

        public void Logout()
        {
            //
        }

    }
}

但我似乎无法正确使用FluentQuery语法

            _logoutButton = x => x.Id("logout_button"),
                .Where(x => x.Text.Equals("logout", 
            StringComparison.InvariantCultureIgnoreCase));

CS0103:名称“Where”在当前上下文中不存在

我想它没有我希望的那么严格,我真的想包括两个属性,但我想这是一个非常简单的解决方案

        _logoutButton = x => x.Text("logout"); 
我真的不愿意接受这一点,希望能有什么建议,返回相同的对象并允许两个条件

编辑:

或者我可以使用一个条件,然后断言,这样我就知道我有正确的控件,它有正确的文本。所以

        protected void AssertControlHasText(Query control, string text)
        {
            var query = app.Query(control);
            var result = query?.FirstOrDefault()?.Text;

            Assert.AreEqual(text, result);
        }

        _logoutButton = x => x.Text("logout"); 

        AssertControlHasText(_logoutButton, "logout");

这不是因为你在
x.Id(“注销按钮”)
之后有一个,而不是)吗?@uvr谢谢,但是在那之前只有一个开始括号。那行结束括号后的逗号呢?@GuruStron不这样认为???@Jules尝试删除它。
        protected void AssertControlHasText(Query control, string text)
        {
            var query = app.Query(control);
            var result = query?.FirstOrDefault()?.Text;

            Assert.AreEqual(text, result);
        }

        _logoutButton = x => x.Text("logout"); 

        AssertControlHasText(_logoutButton, "logout");