【Selenium学习】Selenium 中特殊元素操作

1.鼠标定位操作

鼠标悬停,即当光标与其名称表示的元素重叠时触发的事件,在 Selenium 中将键盘鼠标操

作封装在 Action Chains 类中。Action Chains 类的主要应用场景为单击鼠标、双击鼠标、鼠标拖

曳等。部分常用的方法使用分类如下:

• click(on_element=None),模拟鼠标单击操作。

• click_and_hold(on_element=None),模拟鼠标单击并且按住不放。

• double_click(on_element=None),模拟鼠标双击。

• context_click(on_element=None),模拟鼠标右击操作。

• drag_and_drop(source,target),模拟鼠标拖曳。

• drag_and_drop(source,xoffset,yoffset),模拟将目标拖曳到目标位置。

• key_down(value,element=None),模拟按住某个键,实现快捷键操作。

• key_up(value,element=None),模拟松开某个键,一般和 key_down 操作一起使用。

• move_to_element(to_element),模拟将鼠标移到指定的某个页面元素。

• move_to_element_with_offset(to_element,xoffset,yoffset),移动鼠标至指定的坐标。

• perform(),将之前一系列的 ActionChains 执行。

• release(on_element=None),释放按下的鼠标。

接下来,列举鼠标右击操作和鼠标双击操作两个实例。

(1)鼠标右击操作,实现右击/双击百度首页“新闻”超链接。代码如下:

# _*_ coding:utf-8 _*_
"""
name:zhangxingzai
date:2023/2/16
form:《Selenium 3+Python 3自动化测试项目实战》
"""

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 定位超链接‘新闻’
element = driver.find_element(By.LINK_TEXT, '新闻')
# 实现在新闻超链接上右击
ActionChains(driver).context_click(element).perform()
# 实现用鼠标实现双击‘新闻’
ActionChains(driver).double_click(element).perform()

(2)以百度首页设置为例,使用“move_to_element”的方法,鼠标即可悬停于元素设置:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 通过id定位超链接‘设置’
setting = driver.find_element(By.ID, 's-usersetting-top')
# 使用方法 move_to_element 模拟将鼠标悬停在超链接“设置”处
ActionChains(driver).move_to_element(setting).perform()
# 定位超链接‘高级设置’,并实现单击操作
driver.find_element(By.CLASS_NAME, 'set').click()

实现效果如下:

【Selenium学习】Selenium 中特殊元素操作_第1张图片

2.Select 操作

Web 页面中经常会遇到下拉框选项,Select 模块提供了对标准 Select 下拉框的多种操作方

法。打开百度,单击“设置→高级设置”,会出现一个 Select 下拉框,如下图所示:

【Selenium学习】Selenium 中特殊元素操作_第2张图片

Select 元素的 HTML 代码如下图所示。

【Selenium学习】Selenium 中特殊元素操作_第3张图片

接下来介绍 3 种选择 Select 元素的值的方法。

Select 类:用于定位