2016-01-19 9 views
0

Я использую R и RSelenium для получения некоторых данных с веб-сайта, для чего я должен сначала заполнить форму. Одним из элементов, которые я должен определить в форме, является дата.Установленное значение поля readonly с 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"> 

Я хочу, чтобы установить эту дату Яну 01/2016 или 01/01/2016 идти с требуемым форматом.

После того, как к элементу с

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

Я пробовал эти два подхода, но ни один из них не работал (потому что деталь "ReadOnly", я думаю):

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 

У меня заканчиваются идеи, любой намек высоко оценен!

EDIT ДОБАВИТЬ

я нашел (и отправил) ответ. Я хотел бы знать, однако, если кто-то знает более подходящий подход (например, httr).

+0

С какого сайта? – lukeA

+0

@ lukeA Это колумбийский правительственный сайт, который содержит все потребности в покупке со стороны правительства: https://www.contratos.gov.co/consultas/inicioConsulta.do. Имя поля - fechaInicial (начальная дата). – PavoDive

ответ

1

Глядя глубже в примерах селеном, я нашел это pearl: (в переводе на R)

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

, который работал очень хорошо. Оставив это здесь, на случай, если кто-то наткнется на такую ​​же потребность.