Как захватить WPF TextBlock, используя тестовый стек - PullRequest
0 голосов
/ 09 мая 2018

Я создал приложение WPF и провел несколько автоматических тестов с использованием teststack.white. У них есть документация о том, как они отображают элементы управления в Windows на свои фреймворки, но я не вижу там TextBlock.

Их документы здесь и здесь .

Спасибо

1 Ответ

0 голосов
/ 10 мая 2018

Да, вы не ошиблись, там нет упоминания о TextBlock.

Дело в том, что TextBlock просто длиннее Label в WPF, как вы можете прочитать здесь :

Распространено понимание, что ярлык предназначен для коротких однострочных текстов. (но может включать, например, изображение), тогда как TextBlock работает очень хорошо также для многострочных строк, но может содержать только текст (строки).

Так что вы можете просто получить его, как если бы это было с Label:

Application application = Application.Launch(applicationPath);
Window window = application.GetWindows().First();

var MyTextBlock = window.Get<Label>("MyTextBlock");

Это разметка XAML, которую я использовал для проверки:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="103.966" Width="191.724">
    <Grid>
        <TextBlock x:Name="MyTextBlock" Text="Hello!" Background="CornflowerBlue" Foreground="White" VerticalAlignment="Top"/>

    </Grid>
</Window>
...