Я пытаюсь автоматизировать процесс входа на веб-сайт и выполнить на нем некоторый процесс, используя пакет RSelenium
. Я смог войти в систему, нажимать кнопки здесь и там, но я застрял при выполнении функции jQuery
на странице. Там выпадающий блок, который заполняет данные в нем с помощью функции jQuery
. Я не уверен, как выполнить эту функцию. Источник страницы (включая функцию jQuery
) выглядит следующим образом:
<input disabled="disabled" id="stuff" name="stuff" style="width:100%" type="text" /><script>
jQuery(function(){jQuery("#stuff").kendoDropDownList({"change":disableNext,"dataSource":{"transport":{"read":{"url":"/StuffInfo/GetStuff","data":filterStuff},"prefix":""},"serverFiltering":true,"filter":[],"schema":{"errors":"Errors"}},"autoBind":false,"optionLabel":"Select court...","cascadeFrom":"state"});});
</script>
<script>
Имя выпадающего списка stuff
, и я использую следующий код для его доступа:
library("RSelenium")
startServer()
mybrowser <- remoteDriver()
mybrowser$open()
mybrowser$navigate("<URL>")
wxChooseStuff <- mybrowser$findElement(using='id',"stuff")
когда я пытаюсь выполнить следующую команду:
wxChooseStuff$clickElement()
Я получаю следующую ошибку:
Error: Summary: ElementNotVisible
Detail: An element command could not be completed because the element is not visible on the page.
class: org.openqa.selenium.ElementNotVisibleException
Я надеялся, что щелчок автоматически заполнит данные в раскрывающемся меню.
Любые указатели на то, как выполнить функцию jQuery с помощью RSelenium
, будут высоко оценены.
Даже если я могу выполнить функцию jQuery
, используя другой пакет, это будет нормально. Я хотел бы просто выполнить эту функцию и щелкнуть элемент.
PS - Я не веб-разработчик, поэтому простите меня, если я задам глупый вопрос.
EDIT:
Я попробовал следующий код в соответствии с предложением:
В этой команде я просто включаю полный текст, заключенный в тег script
, заменяя все двойные кавычки ("
) одинарными кавычками ('
)
mybrowser$executeScript(script = "jQuery(function(){jQuery('#stuff').kendoDropDownList({'change':disableNext,'dataSource':{'transport':{'read':{'url':'/StuffInfo/GetStuff','data':filterStuff},'prefix':''},'serverFiltering':true,'filter':[],'schema':{'errors':'Errors'}},'autoBind':false,'optionLabel':'Select court...','cascadeFrom':'state'});});")
wxChooseStuff <- mybrowser$findElement(using='id',"stuff")
mybrowser$executeScript(script = "arguments[0].hidden = false;",
args = list(wxChooseStuff))
wxChooseStuff$clickElement()
но я получил следующую ошибку:
Error: Summary: ElementNotVisible
Detail: An element command could not be completed because the element is not visible on the page.
class: org.openqa.selenium.ElementNotVisibleException
Похоже, что элемент все еще не найден.