2016-11-30 20 views
2

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 
+0

フォームに記入しているウェブページを表示することは可能ですか? – jdharrison

+0

質問にウェブページの情報を追加しました – Wietze314

+0

最新のChromeを実行していますが、この問題は表示されません(結果はどちらの場合も3と返されます)。まもなくDockerイメージstandalone-firefox-debug:3.0.1-bariumを実行し、問題が存在するかどうかを確認します。 – jdharrison

答えて

1

コメントの1つで述べたように、問題はRSeleniumではなくドッカーを使用しています。私は今ドロップダウンでオプションを選択するのと同じ問題がないクロムドッカー(スタンドアロンクロム)を使用します。

+1

以前のバージョンのfirefoxでこの問題が発生しないことがあるそれは将来の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

関連する問題