selenium中的下拉列表的操作

下拉列表,非select元素

在web界面上,有一些下拉列表里,并不是select选项元素,处理这种下拉框时,主要是元素定位。
比如百度首页的,设置按钮,鼠标悬浮时,出来下拉列表:
在这里插入图片描述

选择选项的实现代码:

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriverchr_driver = webdriver.Chrome()
chr_driver.maximize_window()
chr_driver.get("https://www.baidu.com/")
# //*[@id="s-usersetting-top"]ele = chr_driver.find_element_by_xpath('//*[@id="s-usersetting-top"]')
# 实例化,悬浮、点击
ActionChains(chr_driver).move_to_element(ele).perform()# 下拉列表,非select元素
# 获取定位
loc = (By.XPATH, '//a[text()="高级搜索"]')
WebDriverWait(chr_driver, 20).until(EC.visibility_of_element_located(loc))
# 点击列表选项“高级检索”
chr_driver.find_element(*loc).click()

效果:

在这里插入图片描述

下拉列表,select元素

对于web页面是,下拉列表为select元素的,selenium专门提供了一个类Select进行处理。
比如下面的新闻网站:
在这里插入图片描述
选择下拉框中的值,实现代码:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver
from selenium.webdriver.support.select import Select
import timechr_driver = webdriver.Chrome()
chr_driver.maximize_window()
chr_driver.get("https://news.sina.com.cn/")"""
下拉列表,select元素,处理select元素
"""
# 等待元素可见后,查找元素
select_loc = (By.XPATH, '//select[@name="channel"]')
WebDriverWait(chr_driver, 20).until(EC.visibility_of_element_located(select_loc))
ele = chr_driver.find_element(*select_loc)
s = Select(ele)"""
选择下拉列表中的选项时,有以下三种方式
"""
# 下标方式选择元素
s.select_by_index(1)
time.sleep(3)# value属性选择元素
s.select_by_value("tech")
time.sleep(3)# 文本内容选择元素
s.select_by_visible_text("娱乐")

进行切换时,并不会出现下拉列表,而是直接切换值,效果如下:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部