"System.ArgumentOutOfRangeException: 'Dizin aralık dışındaydı. Negatif bir değer olmamalı" hatası alıyom
IWebDriver driver = new FirefoxDriver();
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("web site ismi");
IWait<IWebDriver> wait = new OpenQA.Selenium.Support.UI.WebDriverWait(driver, TimeSpan.FromSeconds(30.00));
wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("retur n document.readyState").Equals("complete"));
for (int i = 0; i < 17; i++)
{
driver.FindElements(By.ClassName("swiper-pagination-bullet-active"))[i].Click(); //kod burada hata veriyor
IWebElement element1 = driver.FindElement(By.Id("h1_manset"));
listBox1.Items.Add(element1.Text);
}
c# Selenium HATA ALIYOOM AMA KODA HİÇ HATA YOK
4
●78
- 07-11-2021, 01:07:46driver.FindElements(By.ClassName("swiper-pagination-bullet-active"))[i].Click(); sayma sayısı dizindeki limiti geçtiği zaman bu hatayı verir. 17 tane eleman olduğunu düşünüp yazdıysanız veya totaldeki elemanlardan analiz etmesini istiyorsanız. 17 yerine
driver.FindElements(By.ClassName("swiper-pagination-bullet-active")) .Count yazıp deneyin. - 07-11-2021, 01:09:29var count = driver.FindElements(By.ClassName("swiper-pagination-bullet-active")).Count;
for (int i = 0; i < count; i++)
{
driver.FindElements(By.ClassName("swiper-pagination-bullet-active"))[i].Click(); //kod burada hata veriyor
IWebElement element1 = driver.FindElement(By.Id("h1_manset"));
listBox1.Items.Add(element1.Text);
} - 07-11-2021, 01:10:32Sorun;
for (int i = 0; i < 17; i++)
bu satırda, sanırım 17 adet yok o classname da.
Ek olarak;
wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("retur n document.readyState").Equals("complete"));
yerine
wait .Until(ExpectedConditions.ElementIsVisible(By.ClassName("swiper-pagination-bullet-active")));
daha sağlıklı olur gibi.