透過 Selenium 操作下拉式選單 (Select)

下拉選單是網頁常見的操作元件,如下圖所示,我們將說明如何透過 Selenium 控制選取的選項與取出選項中所有的文字 (使用 Python 說明)。

select_op

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
選項 2
選項三

 

參考文章:

1. 3. Navigating — Selenium Python Bindings 2 documentation

廣告