说明:下拉选择框就是HTML中select标签
这里使用Selenium中两种方式对下拉选择框中元素进行选择操作:css定位操作(其他定位也可以)、select类。
需求:使用本地只含有select标签下拉选择框,默认选择是北京A,暂停2秒,定位上海A,暂停2秒,定位广州A。
方式一、css定位操作方式
from selenium import webdriver
from time import sleep
#获取浏览器对象
driver=webdriver.Firefox()
#driver.maximize_window()
driver.implicitly_wait(20)
#设置网络链接(只含有select标签的简单网页,本地)
url="http://127.0.0.1:8020/test/index.html?__hbt=1573481038720"
driver.get(url)
#使用css定位
sleep(2)
driver.find_element_by_css_selector("[value='sh']").click()
sleep(2)
driver.find_element_by_css_selector("[value='cq']").click()
sleep(3)
driver.quit()
实现效果:
问题:操作起来比较繁琐,要先定位到要操作的选项,然后再执行点击操作。
所以看下一种方式。
方式二、Select类实现对option选项操作
1、说明:Select类是Selenium为操作select标签特殊封装的。
2、实例化对象:
select=Select(element)
element:<select>标签对应的元素,通过元素定位方式获取,列如:driver.find_element_by_id("selectA)
3、操作方法:
- select_by_index(index) --->根据option索引来定位,从0开始
- select_by_value(value) ---->根据option属性value值来定位
- select_by_visible_text(text) --->根据option显示文本来定位
4、Select类实现步骤:
from selenium import webdriver
from time import sleep
#获取浏览器对象
from selenium.webdriver.support.select import Select
driver=webdriver.Firefox()
#driver.maximize_window()
driver.implicitly_wait(20)
#设置网络链接(只含有select标签的简单网页,本地)
url="http://127.0.0.1:8020/test/index.html?__hbt=1573481038720"
driver.get(url)
"""
1、使用css定位
sleep(2)
driver.find_element_by_css_selector("[value='sh']").click()
sleep(2)
driver.find_element_by_css_selector("[value='cq']").click()
sleep(3)
driver.quit()
"""
#2、使用select类操作下拉选择框
select=driver.find_element_by_css_selector("#select")
sleep(2)
#(1)通过下标形式访问option,先选广州,再选重庆
# Select(select).select_by_index(2)
# sleep(2)
# Select(select).select_by_index(3)
#(2)通过value值形式访问option
# Select(select).select_by_value("sh")
# sleep(2)
# Select(select).select_by_value("gz")
#(3)通过“显示文本”切换option
Select(select).select_by_visible_text("A广州")
sleep(2)
Select(select).select_by_visible_text("A上海")
sleep(3)
driver.quit()