Selenium中web三大操做(鼠标操做、下拉列表操做、按键操做)

1、鼠标操做web

参数都是元素对象,除了与坐标有关的函数外;函数

函数名:ActionChains 动做链ui

常见的鼠标操做:spa

1)悬浮 move_to_element
2)点击 click
3)双击 double_click
4)右键 context_click
5)拖拽 drag_and_drop
6)暂停 pause
7)输入 send_keys

操做步骤:code

1)将要执行全部鼠标的动做,先放到一个列表当中。orm

2)perform() : 执行鼠标动做。对象

示例:blog

 1 示例:
 2 在百度首页中的设置中找到高级设置((鼠标悬浮在设置上后出现高级设置))
 3 
 4 import time
 5 
 6 from selenium import webdriver
 7 from selenium.webdriver.common.action_chains import ActionChains
 8 from selenium.webdriver.common.by import By
 9 from selenium.webdriver.support.wait import WebDriverWait
10 from selenium.webdriver.support import expected_conditions as EC
11 
12 driver = webdriver.Chrome()
13 driver.maximize_window()
14 driver.get("https://www.baidu.com/")
15 
16 # 一、找到鼠标要操做的元素(百度首页的设置)
17 loc = (By.XPATH, '//div[@id="u1"]//a[@name="tj_settingicon"]')
18 ele = driver.find_element(*loc)
19 ele.click()
20 
21 # 二、实例化Actonchains类
22 ac = ActionChains(driver)
23 
24 # 三、调用鼠标行为(悬浮)
25 ac.move_to_element(ele)
26 
27 # 四、调用perform()来执行鼠标动做
28 ac.perform()
29 time.sleep(2)
30 
31 # # 注: 若将二、三、4操做结合到一块儿
32 # ActionChains(driver).move_to_element(ele).perform()
33 
34 # 五、等待 下拉列表中元素可见
35 loc2 = (By.XPATH, '//a[text()="高级搜索"]')
36 WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc2))
37 
38 # 六、选择想要操做的元素
39 # 触发高级搜索内容出现
40 driver.find_element(*loc2).click()

 

2、下拉列表操做(Select类)element

使用Select类进行操做get

1)初始化,传select对象;

2)根据下标、value属性、文本内容来选择值;

示例:

上面案例的基础上操做(对百度高级设置中的文件格式下拉框进行选择操做)

 1 from selenium.webdriver.support.select import Select
 2 
 3 # 一、初始化,传select对象
 4 loc3 = (By.XPATH, '//select[@name="ft"]')
 5 WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc3))
 6 select_element = driver.find_element(*loc3)
 7 
 8 s = Select(select_element)
 9 
10 # 二、根据下标 value属性、文本内容来选择值
11 # 根据下标选值
12 s.select_by_index(6)
13 time.sleep(3)
14 # 根据value属性选值
15 s.select_by_value("doc")
16 time.sleep(3)
17 # 根据文件内容选值
18 s.select_by_visible_text('RTF 文件 (.rtf)')
19 time.sleep(3)
20 
21 # 三、关闭会话
22 time.sleep(5)
23 driver.quit()

 

3、键盘操做(Keys类)

Keys类中处理特殊键

示例:

在百度首页找到搜索输入框,输入内容后,点击百度一下的鼠标操做使用enter键替代

 1 import time
 2 from  selenium import webdriver
 3 from  selenium.webdriver.common.keys import  Keys
 4 
 5 # 一、打开访问百度首页
 6 driver = webdriver.Chrome()
 7 driver.maximize_window()
 8 driver.get("http://www.baidu.com")
 9 # 二、找到搜索输入框,输入selenium webdriver,按enter键进行搜索
10 element = driver.find_element_by_id("kw")
11 element.send_keys("selenium webdriver", Keys.ENTER)
12 element.send_keys(Keys.CONTROL,"c")
13 
14 # 三、关闭会话
15 time.sleep(5)
16 driver.quit()
相关文章
相关标签/搜索