Проблема с методом действий DoubleClick в Selenium WebDriver C# - PullRequest
0 голосов
/ 09 января 2020

При работе с селеновым веб-драйвером в C# я столкнулся с проблемой. Ниже приведен код для нажатия на значок, который отмечен в красной области (на изображении).

IWebDriver driver = new ChromeDriver(options);
IList<IWebElement> status = driver.FindElements(By.XPath("//table[@id='tblFileList']//tr//td[contains(text(),'New')]"));

for (int i = 0; i < status.Count; i++)
{
    action.DoubleClick(status[i]).Build().Perform();
    Thread.Sleep(2000);
    i++;
}

Проблема:

Приведенный выше код нажимает на иконке, но он начинает нажимать на иконку с 0 индекса. Скажем, если l oop работает в 7-й раз, то он начнет щелкать по значку от индекса 0 до индекса.

Редактировать : Когда работает l oop поведение щелчка всегда начинается с 0 индекса. Предположим, что когда l oop выполняется в 7-й раз, то он должен попасть только в 7-ю строку в таблице, но не во все значки, начиная с индекса 0. Но, при использовании этого фрагмента кода, мое событие click запускается снова и снова, начиная с 0 индекса таблицы сетки, и, следовательно, загружаются дубликаты файлов.

Как это можно исправить?

enter image description here

1 Ответ

0 голосов
/ 09 января 2020

Причина, по которой он щелкает по элементу с нулевым индексом, заключается в том, что именно с него вы и начинаете. Если вы хотите, чтобы он начинался с индекса 1, то вам нужно изменить свой l oop примерно так, чтобы он был инициализирован как 1.

for (int i = 1; i <= status.Count; i++)
{
    action.DoubleClick(status[i]).Build().Perform();
    Thread.Sleep(2000);
}

Этот код заставит его щелкать по элементам с индексом 1 -7. Кроме того, вам не нужно увеличивать i в конце l oop. я увеличивается в вашем заявлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...