我正在使用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"))
根据建议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
)。
答案 0 :(得分:1)
深入研究硒的例子,我发现了这个pearl:(翻译成R)
rd$executeScript("document.getElementById('Datei').removeAttribute('readonly',0);")
dt <- rd$findElement("id","Datei")
dt$clearElement()
dt$sendKeysToElement(list("01/01/2016"))
效果很好。离开这里,万一有人偶然发现同样的需要。