码迷,mamicode.com
首页 > 其他好文 > 详细

selenium常用操作之下拉框操作

时间:2020-03-12 21:55:57      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:cti   element   support   ted   一个   time   driver   参考   常用操作   

下拉框操作:

      一般下拉框适用场景:在新增时有下拉框选项,在二级联动或多级联动有下拉(比如:在选择省市县时的多级联动下拉、日期控件等)。

一般下拉框功能有以下两个:

      1.菜单栏-点击其中的某个链接跳转

    2.对下拉列表的元素进行操作。

      下拉框选择都有select的标签属性,存在两个属性select和option。有的呈现的是下拉框样式但没有select属性的比如说或ul/li。

  

思路:

1.等待下拉列表和下拉列表出现

2.对下拉列表的元素进行操作

 

下拉框操作流程:

1.获取所有的下拉列表值,然后用循环去匹配相同的值;

2.通过text的内容来找到下拉列表的某个值

示例代码:

#等待下拉框元素出现后点击
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,//a[contains(text(),"课程")])))
driver.find_element_by_xpath(//a[contains(text(),"课程")]).click()

 

3.如果是select/option组合,则可以使用Select类来处理。

示例代码:

from selenium.webdriver.common.action_chains import ActionChains
#1.实例化鼠标类
ac=ActionChains(driver)
#2.调用各种鼠标行为后,调用perform()来执行
ac.move_to_element_with_offset(driver.find_element_by_xpath(‘//div[@id="u"]/*[@name="tj_login"]‘)).perform()
from selenium.webdriver.support.ui import Select
#1.实例化select类
select=Select(driver.find_element_by_id("su"))
#2.根据下标来选择
select.select_by_index(2)
#3.根据option的value值来选择
select.select_by_visible_text("高级搜索")

  

以下是网上其他文章中介绍的。可以参考下:

     其类型有:

      ①单选下拉框,可以选择一个元素。

      ②多选下拉框,可以选择多个元素。

     定位方法:

      ①直接定位

      ②二次定位。先定位到select框,再定位到select选项。

      ③导入Select模块(推荐使用) -- 根据属性或者索引来定位。

         先要导入Select方法     from selenium.webdriver.support.ui import Select 。

         然后通过索引:s = driver.find_element_by_id(‘nr‘)

                                  Select(s).select_by_index(2)

         通过value值定位:s = driver.find_element_by_id(‘nr‘)

                                       Select(s).select_by_value(‘20‘)

         通过text值来定位:s = driver.find_element_by_id(‘nr‘)

                                        Select(s).select_by_visible_text(‘宝马‘)

下面附上ms.html代码截图:

       技术图片

 

通过selenium实现:

import time 

from selenium import webdriver

from selenium.webdriver.support.ui import Select    # 导入Select模块

# 指定驱动

driver = webdriver.Chrome(r"C:\webdriver\chromedriver.exe")

# 打开网址

driver.get(‘file:///C:/Users\Administrator/PycharmProjects/1120/web_driver/lesson3/ms.html‘)

# 获得相应的webElement

select = Select(driver.find_element_by_id(‘multi‘))

# 先取消所有选择的选项

select.deselect_all()

# 根据text值定位

select.select_by_visible_text(‘雅阁‘)

select.select_by_visible_text(‘宝马 740‘)

# 获得相应的webElement

select = Select(driver.find_element_by_id(‘single‘))

# 根据value值定位

select.select_by_value(‘male‘)

 

driver.quit()

selenium常用操作之下拉框操作

标签:cti   element   support   ted   一个   time   driver   参考   常用操作   

原文地址:https://www.cnblogs.com/123blog/p/12482797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!