2016-11-30 5 views
2

RSelenium을 사용하여 웹 폼을 작성합니다.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() 명령이 실행되고 난 다음을 사용하여 드롭 다운에서 옵션을 선택합니다 두 x 째, 마지막 명령의 결과가 변경됩니다. 나는 또한 screenshot()으로 결과를 확인했다. 또한 clickElement() 명령을 두 번 사용할 때 다른 옵션이 전환되었음을 보여줍니다.

이 동작을 생성하지 않는 드롭 다운 목록에서 옵션을 선택하는 다른 방법이 있습니까?

나는 우분투에서 도미노를 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 
+0

양식을 작성하는 웹 페이지를 제공 할 수 있습니까? – jdharrison

+0

질문에 웹 페이지 정보를 추가했습니다. – Wietze314

+0

가장 최근의 크롬을 실행하면서이 문제를 보았습니다. 두 가지 경우 모두 결과가 3으로 반환됩니다. Docker image standalone-firefox-debug : 3.0.1-barium을 곧 실행하고 문제가 있는지 확인합니다. – jdharrison

답변

1

의견 중 하나에서 언급했듯이이 문제는 RSelenium과 관련이 없으며 사용되는 고정 표시기와 관련이 있습니다. 이제 드롭 다운에서 옵션을 선택하는 것과 동일한 문제가없는 크롬 도커 (독립형 크롬)를 사용합니다.

+1

이전 버전의 firefox가이 문제를 나타내지 않을 수 있습니다. 미래의 파이어 폭스 버전에서 수정 될 가능성이 높습니다. – jdharrison

0

내가 어떤 문제를 가로 질러 오지 않는 양식 자체를 처음과 같이 고지 사항을 점검 할 필요를 열려면 예를 들어 clickElement :

remDrv$navigate('http://riskcalculator.facs.org/RiskCalculator/') 
remDrv$findElement("id", "chkDisclaimer")$clickElement() 
Sys.sleep(1) 
remDrv$findElement("id", "btnContinue")$clickElement() 
Sys.sleep(1) 
#select age group 
ageElems <- remDrv$findElements("css", "#AgeGroup option") 
ageElems[[3]]$clickElement() 
#select Diabetes 
diaElems <- remDrv$findElements("css", "#Diabetes option") 
diaElems[[2]]$clickElement() 
# Select Gender 
genderElems <- remDrv$findElements("css", "#Gender option") 
genderElems[[1]]$clickElement() 

도커에서 실행되는 일이 뭐죠 정확히보고 "디버그"이미지와 VNC 뷰어를 사용할 수 있습니다 브라우저에서

+0

재현 가능한 예제를 제공하기 위해 질문을 편집했습니다. 처음으로 작동한다고 지적했습니다. 문제는 옵션을 두 번 이상 선택할 때 신뢰할 수있는 결과를 제공하지 않는다는 것입니다 (예 : AgeGroup의 옵션 3에서 옵션 1로 앞뒤로 전환합니다.) – Wietze314

관련 문제