2016-06-17 7 views
1

私はSelenium(Python)を使用してドロップダウンリストから値を選択していますが、いくつか問題があります。ドロップダウンで値を特定する際の問題(Selenium Python)

IセレンIDEを使用する場合、以下のように、それは、ボタンなどのドロップダウンを識別する:

driver.find_element_by_xpath("(//button[@type='button'])[2]") 

Iは、次に使用して、リストから値を選択しようとした:

Select(driver.find_element_by_xpath("(//button[@type='button'])[2]")).select_by_visible_text("Africa/Juba") 

すなわち「選択はボタン上ではなくエレメント上でのみ機能します」

エレメントを検査すると、ドロップダウンを識別するのに役立つものは何も表示されませんいくつか):

<select selectpicker="" ng-options="timezone for timezone in model.timezones" ng-model="newAccount.timeZoneId" class="form-control ng-pristine ng-untouched ng-valid bs-select-hidden" data-live-search="true"> <option value="0" label="Africa/Abidjan">Africa/Abidjan</option><option value="1" label="Africa/Accra">Africa/Accra</option> <option value="2" label="Africa/Addis_Ababa">Africa/Addis_Ababa</option> <option value="3</option></select> 

ドロップダウンリストから値を選択する別の方法はありますか?

答えて

2

あなたのXpathで取得している要素はbuttonです。ボタン付きのSelectは使用できません。 select要素を取得したいとします。 これを試してください:あなたが持っている問題は、理にかなって

Select(driver.find_element_by_xpath("//select[@ng-model='newAccount.timeZoneId']")).select_by_visible_text("Africa/Juba") 

編集。 HTMLには、Africa/Jubaという文字を含むoption要素がありません。 Africa/JubaAfrica/Algiersに変更すると問題なく動作するはずです。 コメントの中にこの要素があります:<span class="text">Africa/Juba</span>これはあなたのHTMLの例にはありません。ただしselect内のspanは機能しません。 optionsを扱うときは、Selectクラスを使用できます。

+0

私はそれを実行しようとしましたが、エラーが発生しました: "メッセージ:要素が表示されていません:要素が現在表示されていない可能性があります。オプションが画面に表示されます – ChrisG29

+0

@Chris問題が何であるかを知るのは難しいです。私はそれを試すことができるようにサイトは公開されていますか? – RemcoW

+0

残念ながら、まだ開発中です。私がIDを追加してドロップダウンしてSeleniumの識別を容易にするように頼んだら助けてくれますか? XPathを使用しているときにドロップダウンを認識するのに問題があるようです – ChrisG29

関連する問題