RSeleniumを使用してWebフォームを記入します。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()
コマンドが実行されたときに、私が持っている問題は、私は以下を使用し、ドロップダウンからオプションを選択するには2回、最後のコマンドの結果が変更されます。私はscreenshot()
で結果をチェックしました。また、clickElement()
コマンドを2回使用すると、別のオプションが切り替わることも示されます。
ドロップダウンリストからこのオプションを選択する方法はありますか。これはこの動作を作成していませんか?
私はfirefox 3.0.1でubuntuのドッカーを使用しています。
フォームは、私が使いたい電卓のものです。フォーム自体を開くには、あなたはそうのように、最初の免責事項を確認する必要があります:
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
フォームに記入しているウェブページを表示することは可能ですか? – jdharrison
質問にウェブページの情報を追加しました – Wietze314
最新のChromeを実行していますが、この問題は表示されません(結果はどちらの場合も3と返されます)。まもなくDockerイメージstandalone-firefox-debug:3.0.1-bariumを実行し、問題が存在するかどうかを確認します。 – jdharrison