【问题标题】:How can you fill a table cell using Selenium?如何使用 Selenium 填充表格单元格?
【发布时间】:2018-11-04 22:54:09
【问题描述】:

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

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 函数访问它,但由于某些原因它找不到它。

【问题讨论】:

  • 用相关的 HTML 更新问题

标签: c# selenium html-table


【解决方案1】:

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

【讨论】:

  • 那是正确的答案,直到我点击我想首先更新的那一行之前,元素并不存在。然后我可以正确使用 SendKeys 功能。谢谢!
【解决方案2】:

IWebElement 不提供更改文本的方法,但您可以使用一点 JS - 有点像:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    相关资源
    最近更新 更多