【Selenium】通过Select模块,处理下拉框选择的控件。

用Selenium操作浏览器时,如果是input,我们可以用id、name、css等进行定位。

<input type="text" id="fromStationText" class="inp-txt inp_selected" value="" name="leftTicketDTO.from_station_name">

但是当控件是下拉框时,就不是input了,需要通过另外的方法了。

<select class="select-small" id="cc_start_time"><option value="00002400">00:00--24:00</option>
<option value="00000600">00:00--06:00</option>
<option value="06001200">06:00--12:00</option>
<option value="12001800">12:00--18:00</option>
<option value="18002400">18:00--24:00</option>
</select>

具体可以看下面这段代码。更多见注释 。

# coding=utf-8

# 从selenium引入webdriver驱动
from selenium import webdriver

# 引入time的sleep方法,使用sleep(3)可让程序等待1s
# 也可以使用import time,使用时代码为time.sleep(3)
from time import sleep

# 用来处理 选择下拉框的数据
from selenium.webdriver.support.select import Select

# 代表使用Chrome浏览器,并返回1个对象driver。
# 声明1个变量,并赋值网址
# 然后通过driver对象的get方法打开
# 浏览器最大化
# 等待3秒钟
driver = webdriver.Chrome()
url_12306="https://kyfw.12306.cn/otn/leftTicket/init"
driver.get(url_12306)
driver.maximize_window()
sleep(3)

# 发车时间变量,并转为select的下拉格式
start_time=Select(driver.find_element_by_id("cc_start_time"))

# Select提供了三种方法,分别是索引(从0开始,1就是2)、值、文本。
start_time.select_by_index(1)
sleep(2)
start_time.select_by_value("06001200")
sleep(2)
start_time.select_by_visible_text("12:00--18:00")
sleep(2)

driver.quit()
发布了63 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/woshiyigerenlaide/article/details/103959190