motkot
@motkot
Программирование C#.

Почему появляется ошибка после загрузки страницы?

Ошибка появляется после нажатия на кнопку, если в textbox написано: А56-49015/2021 (такой сайт есть). Иногда вообще ничего не выдает, но на элемент он и не кликает..Типо вот это выдает:

60c1d84acb0ed304034373.png

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;
using HtmlAgilityPack; //почему-то пишет что директива using не нужна, хотя вроде я использую.

namespace MouArBiTp
{
    public partial class Form1 : Form
    {
        ChromiumWebBrowser browser;
        HtmlAgilityPack.HtmlDocument html = new HtmlAgilityPack.HtmlDocument();

        public Form1()
        {
            InitializeComponent();
            InitializeChromium();

            browser.FrameLoadEnd += Browser_FrameLoadEnd;
        }

        private async void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
        {
            var source = await browser.EvaluateScriptAsync("document.documentElement.outerHTML");

            if(source != null)
            {
                html.LoadHtml((string)source.Result);

                var node = html.DocumentNode.SelectNodes("//*[@id='b-case-header']/ul[2]/li[4]/a");

                if (node != null)
                {
                    browser.ExecuteScriptAsync("document.evaluate('//*[@id='b-case-header']/ul[2]/li[4]/a', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();");
                }
            }
        }

        void button1_Click(object sender, EventArgs e)
        {
            browser.Load($"https://kad.arbitr.ru/Card?number={textBox1.Text}");
        }

        void InitializeChromium()
        {

            CefSettings settings = new CefSettings();
            Cef.Initialize(settings);
            browser = new ChromiumWebBrowser("https://kad.arbitr.ru");
            Controls.Add(browser);
            browser.Dock = DockStyle.Fill;
        }

        void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Cef.Shutdown();
        }
    }
}
  • Вопрос задан
  • 299 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы