selenium对web下拉菜单的处理(调戏)

Select提供了三种选择方法:
select_by_index(index)               --通过选项的顺序,第一个为0
select_by_value(value)               --通过value属性
select_by_visible_text(text)         --通过选项可见文本

Select还提供了四种取消选择:【对于多选采用】
deselect_by_index(index)
deselect_by_value(value)
deselect_by_visible_text(text)
deselect_all()

Select提供了三个属性方法:
option                    --提供所有的选项的列表,其中都是选项的Webelement元素
all_selected_options      --提供所有被选中的选项列表其中也均为选项的WebElement元素
first_selected_option     --提供第一被选中的选项,也是下拉的默认值


网页测试代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>处理下拉框</title>
</head>
<body>
<td align="center">下拉框demo</td>
    <br />
    <select id="selectdemo" class="select" name="selectdemo">
        <option name="jiaolian" value="210101" selected="selected">教练人员</option>
        <option name="pingpang" value="210102">乒乓球球员</option>
        <option name="lanqiu" value="210103 ">篮球运动员</option>
        <option name="zuqiu" value="210103  ">足球运动员</option>
        <option name="youyong" value="210402">游泳运动员</option>
        <option name="tiaoshui" value="210403">跳水运动员</option>
    </select>
</body>
</html>

Selenium代码
# -*- coding:utf-8 -*-
from time import sleep
from selenium import webdriver
from selenium.webdriver.support.select import Select

driver = webdriver.Chrome('F:\PyCharmProject\TestFramework\drivers\chromedriver.exe')
driver.get('file:///C:/Users/Uker/Desktop/seleniumHTML/menuitem.html')
sleep(1)

'''方式一、可以定位<select>标签的下拉菜单,也可定位非<select>标签下拉菜单'''
'''
1.先定位到下拉框的元素
2.选择下拉框列表中的元素
'''
# 定位到下拉选择框
sel = driver.find_element_by_id('selectdemo')
# 定位到篮球运动员
sel.find_element_by_xpath('//*[@id="selectdemo"]/option[3]').click()
sleep(1)

'''方式二、用Select定位(Select只对<select>标签的下拉菜单有效)'''
# 实例化一个Select类的对象
selector = Select(driver.find_element_by_id('selectdemo'))
# 下面三种方法选择游泳运动员
selector.select_by_index('4')
# selector.select_by_value('210402')
# selector.select_by_visible_text('游泳运动员')
sleep(1)

driver.quit()


  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium中,当处理动态元素,如下拉菜单(dropdown)时,特别是那些依赖于用户交互(如悬停或点击)才能展开的内容,可能需要额外的时间来等待元素完全加载和变为可操作。为了延长下拉菜单的驻留时间,你可以使用`WebDriverWait`配合`expected_conditions`模块中的条件方法。 以下是一个示例代码片段,展示如何在Selenium中增加下拉菜单的等待时间: ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 定义下拉菜单元素的定位器 dropdown_locator = (By.XPATH, '//*[@id="your_dropdown_id"]') # 驻留时间设置,例如3秒,根据实际情况调整 wait_time = 3 # seconds # 创建WebDriverWait实例 wait = WebDriverWait(driver, wait_time) # 使用expected_conditions的presence_of_element_located等待元素出现 try: element = wait.until(EC.presence_of_element_located(dropdown_locator)) except TimeoutException: print("Element took too long to load") else: # 当元素存在时,执行更多操作,如模拟用户点击 element.click() # 延长下拉菜单展开时间 wait.until(EC.element_to_be_clickable((By.XPATH, '/*dropdown展开后的子选项定位*/'))) # 等待下拉菜单内的子项完全加载 dropdown_submenu_locator = (By.XPATH, '/*下拉菜单子项定位*/') wait.until(EC.element_to_be_clickable(dropdown_submenu_locator)) # 执行针对下拉菜单的操作...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值