使用 RSelenium 设置只读字段的值

set value of readonly field with RSelenium

我正在使用 R 和 RSelenium 从网站获取一些数据,为此我必须先填写一个表格。 我必须在表单中定义的元素之一是日期。

包含日期的框具有以下 html 代码:

<input readonly="readonly" name="Datei" id="Datei" onfocus="popUpCalendar(this, this,'dd/mm/yyyy');return false" maxlength="10" value="" style="width: 200px;" type="text">

我想将该日期设置为 2016 年 1 月 1 日,或 2016 年 1 月 1 日以符合要求的格式。

到达元素后

webElem <- rd$findElement("id","Datei")

我已经尝试过这两种方法,但其中 none 行得通(因为该项目是“只读的”,我认为):

webElem$value <- list("01/01/2016")

webElem$sendKeysToElement(list("01/01/2016"))

按照建议here,我试过了

webElem$executeScript(script = "arguments[1].value=arguments[2]",args = list(webElem,"01/01/2016"))

Error:   Summary: UnexpectedAlertOpen
 Detail: A modal dialog was open, blocking this operation
 class: org.openqa.selenium.UnhandledAlertException

我 运行 没有想法,非常感谢任何提示!

编辑添加

我找到(并发布)了一个答案。不过,我想知道是否有人知道更好的方法(例如使用 httr)。

深入研究 selenium 示例,我发现了这个 pearl:(翻译成 R)

  rd$executeScript("document.getElementById('Datei').removeAttribute('readonly',0);")
  dt <- rd$findElement("id","Datei")
  dt$clearElement()
  dt$sendKeysToElement(list("01/01/2016"))

效果很好。把它留在这里,以防有人偶然发现同样的需求。