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

时间:2018-05-25 13:59:36

标签: 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"));

但是我找不到任何方法来更新其中的数据。 “Text”属性只有一个Get方法,而SendKeys()函数不起作用。如何编辑单元格的值?

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

2 个答案:

答案 0 :(得分:2)

一般来说,如果单元格确实包含输入元素,SendKeys应该有效。但是因为你还说你找不到输入元素,我怀疑输入元素并不是始终存在于每个单元格中。您应该首先单击单元格,以便输入元素出现在该单元格上。如果在点击之前检查元素,您应该能够使用开发工具验证它。

答案 1 :(得分:0)

IWebElement没有提供改变文本的方法,但你可以使用一点JS - 有点像:

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

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