0

我试图在我的窗口上找到一个文档,该文档有一个富文本框,其中使用 TestStack White 的文本,并提取该文本。

我尝试使用 UIItem Label & TextBox,但 White 在测试期间似乎无法找到该对象。可以使用通用 UIItem 找到该对象,但我希望能够访问它包含的文本。

我正在实施它:

public [Unsure] MyRichTextBox { get { return Window.Get<[Unsure]>(SearchCriteria.ByClassName("RichTextBox")); } }

我想说:

Assert.That(MyRichTextBox.Text.Equals(x));

但是,如果我将其标记为标签或文本框,它就找不到我要查找的内容,并且如果我将其声明为 UIItem,我将无权访问 .Text。

4

1 回答 1

2

您想使用 TextBox 的类型。然后您可以使用 BulkText 访问 RichEditBox 中的文本。

首先是窗口:

TestStack.White.UIItems.WindowItems.Window _mainWindow;    
app = TestStack.White.Application.Launch(startInfo);
_mainWindow = app.GetWindow("MyDialog");

然后找到richEditBox:

public string _richeditdocument_ID = "rtbDocument";
private TextBox _richeditdocument_ = null;
public TextBox RichEditDocument 
{ 
    get 
    { 
         if (null == _richeditdocument_) 
                 _richeditdocument_ = _mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId(_richeditdocument_ID)); 
                 return _richeditdocument_;
     } 
}

然后使用以下内容访问文本:

string data = RichEditDocument.BulkText;

以下是使用白色文本方法的代码注释:

    // Summary:
    //     Enters the text in the textbox. The text would be cleared first. This is
    //     not as good performing as the BulkText method. This does raise all keyboard
    //     events - that means that your string will consist of letters that match the
    //     letters of your string but in current input language.
    public virtual string Text { get; set; }

以下是使用 BulkText 的注释:

        // Summary:
        //     Sets the text in the textbox. The text would be cleared first. This is a
        //     better performing than the Text method. This doesn't raise all keyboard events.
        //      The string will be set exactly as it is in your code.
于 2016-09-15T05:15:45.783 回答