我想在使用Selenium時自動執行一些任務,所以這是我第一次使用它。在下拉元素中訪問字段
我是我的代碼的一部分,我需要從'下拉菜單中選擇幾個值。
我做這個訪問此菜單:
metrics_element = driver.find_element_by_xpath("//div[@class='metrics']")
metrics_element.click()
那麼對於一個理智檢查我想看看我在這個菜單中的所有選項,所以我這樣做,因爲每個文檔:
all_options = metrics_element.find_elements_by_tag_name('option')
for option in all_options:
print option.get_attribute('value')
這將返回我什麼,我以爲是字典:
{"id": "1", "name": "name_1", "field": "field_1", "service": "service_1" }
{"id": "2", "name": "name_2", "field": "field_2", "service": "service_1" }
{"id": "3", "name": "name_3", "field": "field_3", "service": "service_1" }
,當我試圖訪問他們作爲dictiona我遇到了一個錯誤。我將如何去選擇某些領域。例如說我想選擇它在哪裏name in ('name_1', 'name_3')
?一般來說,我將如何去選擇這個metrics_element
的指標?謝謝!
編輯:下面是這個菜單的HTML
<div class="select2-container select2-container-multi" id="s2id_metrics" style="width: 400px;">
<ul class="select2-choices">
<li class="select2-search-field">
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input select2-default" id="s2id_autogen5" style="width: 398px;">
</li>
</ul>
</div>
您試圖訪問這些值究竟怎麼樣呢? – Andersson
我嘗試將它們加載到'simplejson'字典中,但是,由於有很多可能的字段,因此它需要太長的時間。訪問它們的最佳方式是什麼? –
我可以提前手動輸入所有這些值。然後從源代碼複製它們的'xpath',然後創建一個循環來選擇它們。必須有比這更有效的方式,對吧? –