在做自动化测试时,我们启动浏览器访问指定页面,定位到想要的元素之后,则需要对元素进行一系列操作,以实现模拟功能测试时对页面的操作与结果判断,元素常用的操作有
输入内容:send_keys()
鼠标点击:click()
获取元素可见文本:text
清空输入框:clear()
获取属性值:get_attribute()
判断元素是否启用编辑:is_enabled()
判断元素是否显示:is_displayed()
判断元素是否被选中:isSelected()
提交输入框内容:submit()
1、send_keys()
send_keys()方法用于给输入框输入内容,是selenium操作元素的最基本操作之一,使用示例:
百度搜索框中输入selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Edge()
driver.get("https://www.baidu.com/")
element = driver.find_element(By.ID, 'kw')
element.send_keys('selenium') # 模拟输入文本内容
2、click()
click()方法模拟鼠标左键单击操作,也是最常用的元素操作方法之一,使用示例:
百度首页点击百度一下
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Edge()
driver.get("https://www.baidu.com/")
element = driver.find_element(By.ID, 'kw')
element.send_keys('selenium')
button = driver.find_element(By.ID, 'su') # 定位百度一下按钮
button.click() # 鼠标左键单击百度一下
3、text
text用于获取元素可见文本,常用于获取指定元素显示的文本内容以对比结果是否符合预期,使用示例:
获取百度首页热搜热点榜的文本内容
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Edge()
driver.get("https://www.baidu.com/")
element = driver.find_element(By.CLASS_NAME, 'title-text')
print(element.text) # 获取文本内容并打印
driver.quit()
4、clear()
clear()方法用于清空输入框中的内容,在测试中常用于修改表单场景,使用示例:
在百度首页输入框中输入selenium后再使用clear()清空输入
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Edge()
driver.get("https://www.baidu.com/")
element = driver.find_element(By.ID, 'kw')
element.send_keys('selenium')
time.sleep(2)
element.clear()
time.sleep(2)
driver.quit()
5、get_attribute()
get_attribute()用于获取元素的属性值,常用于修改表单时获取后台反显内容,使用示例:
获取指定属性值
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Edge()
driver.get("https://www.baidu.com/")
element = driver.find_element(By.ID, 'kw')
print(element.get_attribute('name'))
driver.quit()
本段代码表示获取百度首页输入框的name属性并输出在控制台,使用此方法可以获取元素任意已知属性的值
而要获取文本框中的反显内容,示例如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Edge()
driver.get("https://www.baidu.com/")
element = driver.find_element(By.ID, 'kw')
element.send_keys('selenium')
print(element.get_attribute('value'))
driver.quit()
本段代码表示输入框中输入selenium,然后使用get_attribute()方法,参数传入value,则获取到输入框中的文本内容
6、is_enabled()
is_enabled()用于判断元素是否启用编辑状态,如果元素是可编辑的,则返回true,如果元素不可编辑,则返回false,不可编辑的元素进行输入内容或选择内容将不成功
element.is_enabled()
7、is_displayed()
is_displayed()用于判断元素是否显示在页面上,有些元素在DOM中能够找到,但不一定显示在页面上,所谓显示在页面上,即可见,有宽度的,如果元素可见,返回true,如果不可见,返回false,如果使用click()操作不可见元素时,将抛出异常
element.is_displayed()
8、isSelected()
isSelected()用于判断单选框或复选框的状态是否被选中,如果选中返回true,否则返回false
element.isSelected()
9、submit()
submit()方法用于提交一些没有按钮可点击的输入框,比如我们在进行一些搜索时,输入文字后没有点击搜索的按钮,而是直接敲击enter键完成搜索,则可以使用submit()方法模拟此操作
element.submit()