Считайте значения в List или DataTable из независимой сетки с помощью Selenium C#.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Считайте значения в List или DataTable из независимой сетки с помощью Selenium C#.

Сообщение Anonymous »

Я пытаюсь прочитать агностическую сетку на веб-странице с помощью Selenium C# и хочу сохранить текст на основе имени столбца. Я не большой поклонник DataTable, поэтому я предпочел List DT.
Проблема: в сетке есть полоса прокрутки, которую можно прокручивать вправо или влево. Поскольку строк всего несколько, вертикальная полоса прокрутки отсутствует. После проверки элемента я узнаю, что для 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Назначьте ввод Map> выходу Map>
    Anonymous » » в форуме JAVA
    0 Ответы
    125 Просмотры
    Последнее сообщение Anonymous
  • Является ли `[] (std :: list и list) {return std :: move (list);} (list)` гарантированно оставить `list` yelm?
    Anonymous » » в форуме C++
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Ошибка: put(java.lang.string, list) в хэш-карте нельзя применить к (java.util.list)
    Гость » » в форуме JAVA
    0 Ответы
    255 Просмотры
    Последнее сообщение Гость
  • Ошибка: put(java.lang.string, list) в хэш-карте нельзя применить к (java.util.list)
    Гость » » в форуме Android
    0 Ответы
    233 Просмотры
    Последнее сообщение Гость
  • Конвертировать Map > для списка > используя API потока
    Anonymous » » в форуме JAVA
    0 Ответы
    101 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»