C# Невозможно получить доступ к элементам HTML во время автоматизации в приложении Windows Form с веб-браузером - PullRequest
0 голосов
/ 17 июня 2020

Я создал приложение-образец формы, в которое добавил элемент управления WebBrowser с некоторыми Html элементами, я пытаюсь автоматизировать его с помощью TestStack white. У меня возникают проблемы с доступом к элементам HTML во время автоматизации.

Ниже приведен код для приложения c#

namespace StartCsharp
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        WebBrowser browser = new System.Windows.Forms.WebBrowser();
        browser.Navigate("about:blank");
        browser.Document.OpenNew(false);
        browser.Document.Write(GenerateHtml().ToString());
        Controls.Add(browser);
    }

    public StringBuilder GenerateHtml()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("<h1>BODY</h1>");
        sb.Append("<input type=\"checkbox\" id=\"vehicle1\" name=\"vehicle1\" value=\"Bike\">");
        sb.Append("<label for=\"vehicle1\"> I have a bike</label><br>");
        sb.Append("<input type=\"checkbox\" id=\"vehicle2\" name=\"vehicle2\" value=\"Car\">");
        sb.Append("<label for=\"vehicle2\"> I have a car</label><br>");
        sb.Append("<button type=\"button\">Click Me!</button><br><br>");
        sb.Append(" <label for=\"fname\">First name:</label><br><br>");
        sb.Append("<input type=\"text\" id=\"fname\" name=\"fname\"><br><br>");
        sb.Append("<label for=\"cars\">Choose a car:</label>");
        sb.Append("<select name=\"cars\" id=\"cars\">");
        sb.Append("<option value = \"volvo\" > Volvo </option >");
        sb.Append("<option value = \"audi\" > Audi </option ></select>");


        StringBuilder _formattedReport = new StringBuilder();
        _formattedReport.Append("<html>");
        _formattedReport.Append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">");
        _formattedReport.AppendLine("<body>");
        _formattedReport.AppendLine(sb.ToString());
        _formattedReport.AppendLine("</body>");
        _formattedReport.AppendLine("</html>");
        return _formattedReport;
    }
}

Код для операторов файла шага автоматизации для доступа к элементам

var vechile1 = window.Get<TestStack.White.UIItems.CheckBox>(TestStack.White.UIItems.Finders.SearchCriteria.ByAutomationId("vechile1").AndOfFramework(WindowsFramework.InternetExplorer));
        vechile1.Click();

        var vechile2 = window.Get<TestStack.White.UIItems.CheckBox>(TestStack.White.UIItems.Finders.SearchCriteria.ByAutomationId("vechile2").AndOfFramework(WindowsFramework.InternetExplorer));
        vechile2.Click();

        Button button3 = window.Get<TestStack.White.UIItems.Button>(TestStack.White.UIItems.Finders.SearchCriteria.ByText("Click Me!"));
        button3.Click();

Пожалуйста, помогите мне получить доступ к Html элементам пользовательского интерфейса из автоматизации с помощью Test Stack или порекомендуйте любой другой инструмент для этого.

Заранее спасибо.

...