Я использую RSelenium для заполнения веб-формы. Чтобы выбрать вариант из раскрывающегося списка, я использую следующее:
xpathoption <- paste0("//select[@id = '",samplepatient[p,'name'],"']/option[",samplepatient[p,'value'],"]")
optionelem <- remDrv$findElement(using = "xpath", xpathoption)
selectelem <- remDrv$findElement(using = "xpath"
, paste0("//select[@id = '",samplepatient[p,'name'],"']"))
optionelem$clickElement()
selectelem$screenshot(display = T)
Я использую следующее, чтобы проверить, был ли выбран правильный вариант:
remDrv$findElement(using = "xpath", paste0("//select[@id = '",samplepatient[p,'name'],"']"))$getElementAttribute("value")[[1]]
У меня проблема в том, что когда команда clickElement()
запускается дважды, результат последней команды меняется. Я также проверил результат с помощью screenshot()
. Это также показывает, что при двойном использовании команды clickElement()
переключается на другую опцию.
Есть ли другой способ выбрать параметр из раскрывающегося списка, который не создает такого поведения?
Я использую докер на ubuntu с firefox 3.0.1.
Форма взята из калькулятора, который я хочу использовать. Чтобы открыть саму форму, вам нужно сначала проверить заявление об отказе от ответственности, например:
remDrv$navigate('http://riskcalculator.facs.org/RiskCalculator/')
remDrv$findElement(using = "xpath", "//input[@id = 'chkDisclaimer']")$clickElement()
Sys.sleep(1)
remDrv$findElement(using = "xpath", "//input[@id = 'btnContinue']")$clickElement()
Sys.sleep(1)
воспроизводимый пример после отказа от ответственности:
#select age group
optionelem <- remDrv$findElement(using = "xpath", "//select[@id = 'AgeGroup']/option[3]")
selectelem <- remDrv$findElement(using = "xpath", "//select[@id = 'AgeGroup']")
#first attempt
optionelem$clickElement()
selectelem$getElementAttribute("value")
# result = 3
#second attempt
optionelem$clickElement()
selectelem$getElementAttribute("value")
# result = 1
docker run -d -p 5901:5900 -p 127.0.0.1:4444:4444 selenium/standalone-firefox-debug:3.0.1-barium
. Вероятно, это проблема с geckodriver github.com/mozilla/geckodriver/issues/322. - person jdharrison   schedule 01.12.2016docker run -d -p 5901:5900 -p 127.0.0.1:4444:4444 selenium/standalone-chrome-debug:3.0.1-barium
У меня не возникает этой проблемы. Если хром полезен для вас, возможно, используйте это изображение. В противном случае вы можете попробовать более старую версию образа Firefox, см. hub.docker. .com/r/selenium/standalone-firefox-debug/tags . - person jdharrison   schedule 01.12.2016