web自动化测试(6)--下拉列表操作

在html页面中,常见的下拉别表操作采用select--option的方式来实现。

针对这一类的下拉列表操作,我们在进行自动化操作时需要引入Select类:from selenium.webdriver.support.select import Select

操作流程如下:

1、找到页面中的select元素;

2、实例化Select类,并将查找到的select元素作为参数进行参数传递;

3、通过下标/value/text进行选值。

部分实例如下:

 1 ......
 2 # 找到select元素
 3 ele = driver.find_element("id","hobby")
 4 
 5 # 实例化Select类,将select元素对象传进去。
 6 s = Select(ele)
 7 
 8 # 通过下标/value/文本选值
 9 s.select_by_value("看书")
10 sleep(3)
11 s.select_by_index(4)
12 sleep(3)
13 s.select_by_visible_text("看剧")
14 ......

除了使用select--option的方式实现下拉列表的功能外,还可以使用其他方式来实现下拉列表,如百度首页中的“设置”部分:

 我们可以采用鼠标操作的方式实现下拉列表中元素的选择,具体操作代码同鼠标操作章节中的实例。

 1 from selenium import webdriver
 2 from selenium.webdriver.common.by import By
 3 from selenium.webdriver.support.wait import WebDriverWait
 4 from selenium.webdriver.support import expected_conditions as EC
 5 from selenium.webdriver.common.action_chains import ActionChains
 6 
 7 driver = webdriver.Chrome()
 8 driver.get("http://www.baidu.com")
 9 
10 wait = WebDriverWait(driver,20)
11 
12 setting_loc = (By.ID,'s-usersetting-top')
13 wait.until(EC.visibility_of_element_located(setting_loc))
14 ele = driver.find_element(*setting_loc)
15 
16 # 启动鼠标操作
17 ac = ActionChains(driver)
18 ac.move_to_element(ele)  # 鼠标移动到设置元素上
19 # 执行鼠标操作
20 ac.perform()
21 
22 search_loc = (By.XPATH,'//a[text()="高级搜索"]')
23 wait.until(EC.visibility_of_element_located(search_loc))
24 driver.find_element(*search_loc).click()   # 点击高级搜索按钮
原文地址:https://www.cnblogs.com/yif930916/p/14794648.html