Błąd w aplikacji webowej: System.ArgumentOutOfRangeException: 'Indeks był spoza zakresu. Musi mieć wartość nieujemną i mniejszą niż rozmiar kolekcji. Nazwa parametru: index'

0

Cześć, ostatnio zaczałem tworzyć program ktory ma za zadanie dodawanie postow na grupach facebookowych. Wszystko jest okej do momentu proby ponownego zalogowania na inne konto. Jest to wersja probna wiec nie ma jeszcze tutaj dodawania tych postow ale to juz mam ogarniete i chcialem zobaczyc czy nie napotkam jakichś innych problemow na mojej drodze.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace kontynuacja
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string url = "https://www.facebook.com/";

        ChromeDriver drv; Thread th;

        private void Form1_Load(object sender, EventArgs e)
        {
            ChromeOptions options = new ChromeOptions();
            options.AddArguments("--disable-notifications"); // to disable notification
            drv = new ChromeDriver(options);


            drv.Navigate().GoToUrl(url);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            

            drv.FindElement(By.XPath("//button[normalize-space()='Akceptuj wszystkie']")).Click();
            drv.FindElements(By.XPath("//input[@id='email']"))[0].SendKeys("Login"); Thread.Sleep(2000);
            drv.FindElements(By.XPath("//input[@id='pass']"))[0].SendKeys("Password"); Thread.Sleep(2000);
            drv.FindElement(By.XPath("//button[contains(text(),'Zaloguj się')]")).Click(); Thread.Sleep(2000);
            drv.FindElements(By.XPath("//input[@placeholder='Szukaj na Facebooku']"))[0].SendKeys(" group name"); Thread.Sleep(2000);
            drv.FindElement(By.XPath("//li[@id='dir_nav_sts:126687424171076']//span[@class='a8c37x1j ni8dbmo4 stjgntxs l9j0dhe7']")).Click();
            drv.FindElement(By.XPath("//div[@aria-label='Konto']//i[@class='hu5pjgll lzf7d6o1']")).Click(); //log out
            drv.FindElement(By.XPath("//span[contains(text(),'Wyloguj się')]")).Click();
            drv.FindElements(By.XPath("//input[@placeholder='Adres e-mail lub numer telefonu']"))[0].SendKeys("login"); Thread.Sleep(2000);
            drv.FindElements(By.XPath("//input[@placeholder='Hasło']"))[0].SendKeys("Password"); Thread.Sleep(2000);
        }
    }
}
3

Moim zdaniem masz pustą tablicę. I element o indeksie [0] w metodzie FindElements nie istnieje.

drv.FindElements(By.XPath(""))[0] <--- Tutaj masz błąd

Dobrze by było sprawdzić najpierw co zawiera tablica, a później wyciągać z niej elementy.

0

@AdamWox: Dzięki! Zadziałało ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1