Почему текстовое поле не печатает текст, но я получил строку? - PullRequest
0 голосов
/ 19 мая 2018

Я использую форму Windows;

Я хочу установить TextBox tbCommandName1.Text, который находится на моей Форме;

Я получил значение от GetInfo(), и как я могу отправить строку из Second.GetInfo() в мою основную форму, как в класс Favorit?

Я не хочу создавать экземпляр Form;Потому что это делает для инициализации всех моих компонентов снова.Бьюсь об заклад, я должен использовать get / set.Дайте мне, пожалуйста, несколько советов;Большое спасибо тебе, мой гуру!

 namespace ParserFavorit
    {
        public partial class Favorit : Form, IForm
        {
            public Favorit()
            {
                InitializeComponent();
            }

        public string CommandName1
        {
            get { return tbCommandName1.Text; }
            set { tbCommandName1.Text = value; }
        }

        private void bStart_Click(object sender, EventArgs e)
        {
            string ID = tbGetID.Text;
            Second.StartBrowser(Second.GetDriver(), ID);            
        }


    }
    public class Second : Form
    {
        private static ChromeDriver driver = null;
        public static ChromeDriver GetDriver()
        {
            if (driver == null)
            {
                driver = new ChromeDriver();
            }
            return driver;
        }

        public static void StartBrowser(ChromeDriver driver, string IDevent)
        {
            driver.Navigate().GoToUrl("myURL" + IDevent);
            GetInfo();
        }

        public static void GetInfo()   
        {
            System.Threading.Thread.Sleep(2000);
            string CommandName1 = driver.FindElement(By.XPath(".//*[@id='react-root']/div/div[2]/div/div[1]/div/div[1]/div/div[1]/div/header/div[2]/span[1]")).Text;
            string CommandName2 = driver.FindElement(By.XPath(".//*[@id='react-root']/div/div[2]/div/div[1]/div/div[1]/div/div[1]/div/header/div[2]/span[2]")).GetAttribute("innerHTML");   
        }  
    }

    interface IForm
    {
        string CommandName1 { get; set; }
    }
}

1 Ответ

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

Я уверен, что у меня есть TextBox с именем tbCommandName1;Моя форма не показывает значение, которое я получил с веб-сайта, но метод PrintName получил его.Как так?

namespace ParserFavorit {публичный частичный класс Favorit: Form {public Favorit () {InitializeComponent ();}

    private void bStart_Click(object sender, EventArgs e)
    {
        string ID = tbGetID.Text;
        Second.StartBrowser(Second.GetDriver(), ID);
    }

    public void PrintName(string Command1Name)
    {
        string Name = Command1Name;
        tbCommandName1.Text = Name;
    }
}
public class Second
{
    private static ChromeDriver driver = null;
    public static ChromeDriver GetDriver()
    {
        if (driver == null)
        {
            driver = new ChromeDriver();
        }
        return driver;
    }

    public static void StartBrowser(ChromeDriver driver, string ID)
    {
        driver.Navigate().GoToUrl("https://m.favorit.com.ua/uk/live/events/" + ID);
        GetInfo();    
    }



    public static void GetInfo()   
    {
        System.Threading.Thread.Sleep(2000);
        string CommandName1 = driver.FindElement(By.XPath(".//*[@id='react-root']/div/div[2]/div/div[1]/div/div[1]/div/div[1]/div/header/div[2]/span[1]")).Text;
        Favorit favorit = new Favorit();
        favorit.PrintName(CommandName1);
    }
}

}

...