#html #web-scraping #rselenium
Вопрос:
Я пытаюсь использовать RSelenium
для навигации это приложение для онлайн-карт (https://www.dsec.gov.mo/gis/unidade/unidade.html?lang=en). В браузере я могу либо нажимать клавиши со стрелками, либо удерживать клавишу щелчка левой кнопкой мыши и перетаскивать, чтобы переместить отображаемую область карты.
Однако мне не удалось повторить те же маневры с помощью RSelenium
драйвера Firefox. Вот что я пытался сделать до сих пор.
library(RSelenium)
rD <- rsDriver(browser="firefox", port = 4542L)
remDr <- rD[["client"]]
remDr$open()
remDr$navigate("https://www.dsec.gov.mo/gis/unidade/unidade.html?lang=en")
# unable to scroll the window (no scrolling bar in the outermost window though)
remDr$executeScript("window.scrollBy(0, -50)")
# locate what seems to be container of the map
webElem <- remDr$findElement("tag name", "canvas")
webElem$highlightElement()
webElem$click()
webElem$sendKeysToElement(list(key = "down_arrow"))
webElem$executeScript("window.scrollBy(0,250)", args = list("")) # nothing happens
Наблюдая за тем, как меняется html-скрипт во время операции панорамирования в браузере, я заметил, что атрибут data-interacting
переключается с false
на true
и возвращается к false
, когда панорамирование завершено.
<div class="esri-view-surface esri-view-surface--inset-outline esri-view-surface--touch-none" role="application" tabindex="0" data-cursor="crosshair" data-interacting="false"><canvas style="width: 982px; height: 804px; display: block;" width="982" height="804"></canvas></div>
Я не знаком с архитектурой веб-сайта или Javascript. Любая информация о том, как перемещаться по этой карте с помощью R, была бы весьма признательна.
Комментарии:
1.
down_arrow
,home
,end
кнопка не будет работать на этой странице. Я смог нажать только
-
символы и на странице.2. На моем компьютере, когда карта «активирована», я могу нажимать клавиши
up arrow
со стрелками и другие клавиши со стрелками для навигации по карте.3. Конечно, вы можете нажать на
up arrow
кнопку, но я думаю, что мы не можем нажатьup arrow
на кнопкуRSelenium
4. Является ли эта проблема специфичной для RSelenium, что нажатие кнопки
up arrow
не может быть смоделировано? А как насчет Селена в целом?5. Для селена, я думаю, мы можем нажать стрелку вверх