Попытка программно войти на сайт - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь войти на веб-сайт и не могу заставить его работать так, как я хочу, с текущим кодом, когда он запускается через код, который он не щелкает, даже когда я пытаюсь нажать кнопку отправить всам веб-браузер.

Я могу заставить его работать с закомментированным кодом, но веб-браузер должен оставаться открытым, и я бы хотел, чтобы он был скрыт.

В идеале мне бы хотелосьиспользовать веб-браузер, так как я все это делал с помощью веб-браузера, но если я не могу, я могу попробовать селен, и я хотел бы знать, почему он не работает.

Этот код будетточно воссоздайте проблему, если у вас есть нужные библиотеки. Если вы поставите разрыв в конце метода MainSite, он остановится именно там, где возникает проблема. Если вы затем попытаетесь нажать на кнопку «Войти», ничего не произойдет, но если вы затем поставите символ назад, вы можете нажать кнопку еще раз, и он скажет вам, что у вас неправильный пароль.

Надеюсь, этого достаточноидти дальше.

using System.Windows.Forms;
using SHDocVw;
using MSHTML;
using System.Threading;

namespace ShiftCodes
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            //InitializeComponent();
            MainSite();
        }
        void MainSite()
        {

            InternetExplorer ie = new InternetExplorer();
            string loginsite = "https://borderlands.com/en-US/vip-codes/";

            SHDocVw.WebBrowser wb = (SHDocVw.WebBrowser)ie;
            HTMLDocument document = new HTMLDocument();

            wb.Visible = true;
            wb.Navigate(loginsite);
            while (wb.Busy) { Thread.Sleep(1000); }
            document = ((HTMLDocument)wb.Document);

            IHTMLElementCollection links = document.getElementsByTagName("A");

            foreach (IHTMLElement link in links)
            {
                var sss = link.innerText;
                if (link.innerText != null)
                {
                    if (link.innerText.Contains("Login"))
                        link.click();
                }
            }
            while (wb.Busy) { Thread.Sleep(1000); }

            links = document.getElementsByTagName("A");

            foreach (IHTMLElement link in links)
            {
                var sss = link.innerText;
                if (link.innerText != null)
                {
                    if (link.innerText.Contains("Continue"))
                        link.click();
                }
            }
            while (wb.Busy) { Thread.Sleep(1000); }
            foreach (HTMLInputElement element in document.getElementsByTagName("input"))
            {
                if (element.name == "username")
                {
                    element.setAttribute("value", "email@gmail.com");
                    //element.focus();
                    //SendKeys.SendWait("email@gmail.com");
                    //Thread.Sleep(100);
                }
                if (element.name == "password")
                {
                    element.value = "Password";
                    //element.focus();
                    //SendKeys.SendWait("Password");
                    //Thread.Sleep(100);
                }
            }
            foreach (HTMLInputElement element in document.getElementsByTagName("button"))
            {
                if (element.innerText.Contains("Sign In"))
                {
                    element.click();
                }
            }
        }
    }
}
...