0

我正在使用 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")

我已经尝试过这两种方法,但都没有奏效(因为我认为该项目是“只读的”):

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

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

正如这里所建议的,我试过了

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例如,使用 )。

4

1 回答 1

1

深入研究 selenium 示例,我发现了这颗珍珠:(翻译为 R)

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

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

于 2016-01-19T20:47:22.180 回答