Как вы можете заполнить ячейку таблицы с помощью Selenium? - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь заполнить таблицу, используя драйверы селена, и все документы, которые я смог найти, показывают только, как извлечь данные из ячеек.Я могу получить доступ к ячейкам таблицы, используя:

var rows = Driver.FindElement(By.Id("Products")).FindElements(By.XPath("id('Products')/tbody/tr"));
var cells = tableRows[1].FindElements(By.XPath("td"));

Но я не смог найти способ обновить данные, которые в нем находятся.Свойство «Текст» имеет только метод Get, а функция SendKeys () не работает.Как я могу отредактировать значение ячейки?

В качестве примечания, моя ячейка содержит html "вход", я пытался получить к нему доступ с помощью функции FindElement ячейки, но по некоторым причинам не может ее найти,

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Вообще говоря, SendKeys должно работать, если ячейка действительно содержит элемент ввода.Но поскольку вы также говорите, что не можете найти элемент ввода, я подозреваю, что элемент ввода не существует в каждой ячейке все время.Возможно, вам следует сначала щелкнуть ячейку, чтобы элемент ввода появился в этой ячейке.Вы сможете проверить это с помощью инструментов разработчика, если осмотрите элемент до того, как щелкнет по нему.

0 голосов
/ 25 мая 2018

IWebElement не предоставляет метод для изменения текста, но вы можете использовать немного JS - что-то вроде:

((IJavaScriptExecutor)Driver).ExecuteScript("document.getElementByXXXXX.innerHTML = "VALUE";");

https://seleniumhq.github.io/selenium/docs/api/dotnet/html/M_OpenQA_Selenium_IJavaScriptExecutor_ExecuteScript.htm

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