透過 Selenium 操作下拉式選單 (Select)
下拉選單是網頁常見的操作元件,如下圖所示,我們將說明如何透過 Selenium 控制選取的選項與取出選項中所有的文字 (使用 Python 說明)。
html 原始碼如下所示:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<select name = "select_name">
<option value = "op_1">option 1</option>
<option value = "op_2">選項 2</option>
<option value = "op_3">選項三</option>
</select>
我們可透過 WebDriver 提供的 Select 來操作下拉選單,首先呼叫 Select() 參數帶入要抓取元件的名稱,來取得 Select element,程式碼如下所示:
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.support.ui import Select
driver = webdriver.Firefox()
driver.get("TEST_URL")
# 抓取下拉選單元件
select = Select(driver.find_element_by_name('select_name'))
抓取到下拉式元件後,可透過以下三種方法來選取下拉選單選項:
方法 1:透過 index 值選取資料,
執行後會選取「option 1」選項
select.select_by_index(0)
方法 2:透過 option 的 value 值選取資料,
執行後會選取「選項 2」選項
select.select_by_value("op_2")
方法 3:透過選項顯示的文字選取資料,
執行後會選取「選項三」選項
select.select_by_visible_text(u"選項三")
如果要取得下拉選單元件裡所有選項的文字,可先取得 options,它會回傳 (list) 下拉選單的每個選項的元件,再一一印出所有選項文字,程式碼如下所示:
for op in select.options:
print(op.text)
執行結果如下所示:
option 1
參考文章:
1.
3. Navigating — Selenium Python Bindings 2 documentation