C# 如何使用Selenium填充表格单元格?

C# 如何使用Selenium填充表格单元格?,c#,selenium,html-table,C#,Selenium,Html Table,我正在尝试使用selenium驱动程序填充一个表,我能找到的所有文档都只显示了如何从单元格中检索数据。我可以通过以下方式访问我的表格单元格: var rows = Driver.FindElement(By.Id("Products")).FindElements(By.XPath("id('Products')/tbody/tr")); var cells = tableRows[1].FindElements(By.XPath("td")); 但是我找不到任何方法来更新其中的数据。“Tex

我正在尝试使用selenium驱动程序填充一个表,我能找到的所有文档都只显示了如何从单元格中检索数据。我可以通过以下方式访问我的表格单元格:

var rows = Driver.FindElement(By.Id("Products")).FindElements(By.XPath("id('Products')/tbody/tr"));
var cells = tableRows[1].FindElements(By.XPath("td"));
但是我找不到任何方法来更新其中的数据。“Text”属性只有一个Get方法,SendKeys()函数不起作用。如何编辑单元格的值


作为旁注,我的单元格包含一个html“输入”,我尝试使用单元格的FindElement函数访问它,但由于某些原因,它找不到它

IWebElement不提供更改文本的方法,但您可以使用一点JS—类似于:

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

IWebElement不提供更改文本的方法,但您可以使用一点JS—类似于:

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

一般来说,如果单元格确实包含输入元素,
SendKeys
应该可以工作。但是因为你也说找不到输入元素,我怀疑输入元素并不总是存在于每个单元格中。您可能应该首先单击该单元格,以便输入元素显示在该单元格上。如果在单击元素之前检查该元素,您应该能够使用开发工具对其进行验证。

一般来说,如果单元格确实包含输入元素,
SendKeys
应该可以工作。但是因为你也说找不到输入元素,我怀疑输入元素并不总是存在于每个单元格中。您可能应该首先单击该单元格,以便输入元素显示在该单元格上。如果在单击元素之前检查该元素,您应该能够使用开发工具进行验证。

使用相关的HTML更新问题使用相关的HTML更新问题。如果答案正确,在我单击要首先更新的行之前,元素不存在。然后我就可以正确使用SendKeys功能了。谢谢这是正确的答案,这些元素在我单击要首先更新的行之前并不存在。然后我就可以正确使用SendKeys功能了。谢谢