Проблема: в сетке есть полоса прокрутки, которую можно прокручивать вправо или влево. Поскольку строк всего несколько, вертикальная полоса прокрутки отсутствует. После проверки элемента я узнаю, что для ag создается лишь несколько элементов div. Когда я прокручиваю вправо с помощью полосы прокрутки, элементы div генерируются для правых столбцов. И как только я прокручиваю назад влево, созданные позже элементы div исчезают. Короче говоря, элементы div создаются только для видимых столбцов.
что я пробовал: я читал сетку, используя
Код: Выделить всё
IList agGrid = driver.FindElements(GetLocator("//div[@class='ag-center-cols-container']//div[@role='row']"));
Код: Выделить всё
foreach (IWebElement row in agGrid)
{
if (row.Text.ToString() == "")
continue;
else
{
//get first row and click on it to hightlight
IList RowData = row.FindElements(By.TagName("div"));
RowData[0].Click();
//tried to scroll towards end
//IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
//js.ExecuteScript("javascript:window.scrollBy(250,350)");
RowData = row.FindElements(By.TagName("div"));
//get data using colindex attribute. But I was not aware exactly how to do this
//IList RowData1 = row.FindElements(By.("aria-colindex"));
List dat = RowData.Select(x => x.Text).ToList(); //this doesn't give all the data
//WebElement.SendKeys(Keys.ArrowRight);
//find the horizontal scrollbar element & than scroll
//IWebElement element = driver.FindElement(By.Id("ag-body-horizontal-scroll-container"));
//element.SendKeys(Keys.ArrowRight);
//Actions actions = new Actions(driver);
//actions.MoveToElement(element);
//actions.Perform();
//find the last column and than scroll
IWebElement element = row.FindElement(By.CssSelector("div[@aria-colindex='30']"));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);
Thread.Sleep(500);
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... g-selenium