Python Selenium常用元素操作API

元素定位需要两部分:①元素信息(浏览器开发者工具) ②代码定位元素的api(id,name,xppth,css等方法)。
元素识别后就是要对元素进行操作,用火狐定位元素,用谷歌做自动化测试比较好。
定位到元素后,需要对元素进行操作,常见的有鼠标点击、键盘操作等,这取决于我们定位到的对象支撑哪些操作。一般来说,所有与页面交互的操作都将通过WebElement接口。
注意:元素信息用复制的方式+引号的使用:外面用单,里面就用双,防止匹配失败

一、常用的四种操作

clear(): 清除对象的内容
driver.find_element(By.ID,'kw').clear()

send_keys(): 在对象上模拟按键输入
driver.find_element(By.ID,'kw').send_keys("12306")

click(): 单击对象,强调对象的独立性
driver.find_element(By.ID,'su').click()

submit() : 提交表单,要求对象必须是表单,表单就是form
driver.find_element(By.ID,'form').submit()
①提交表单的(get post协议提交) ②解决大表单的提交按钮 不好定位的问题,不用click(),直接submit()
注意:这种情况不能有name=’submit’的元素,否则该元素会和submit()方法造成混淆,导致错误。

二、获取的方法

size : 返回对象的尺寸
driver.find_elementr(By.CSS_SELECTOR,"#J_username").size

text : 获取对象的文本
driver.find_element(By.CSS_SELECTOR,"a.sendpwd").text

get_attribute(“属性名”):获取对象的属性值
driver.find_element(By.CSS_SELECTOR,"#J_username").get_attribute("name")

三、判断的三种方法

s_displayed():用来判断对象是否可见,即css的display属性是否为none
driver.find_element(By.CSS_SELECTOR,"#J_username").is_displayed()

is_enabled():判断对象是否被禁用 是否可用
driver.find_element(By.CSS_SELECTOR,"#J_username").is_enabled()

is_selected():判断对象是否被选中。
driver.find_element(By.ID,"head_checkbox").is_selected()

三、其他方法
tag_name:获取对象标签名称
driver.find_element(By.ID,"head_checkbox").tag_name

location:获取元素坐标
driver.find_element(By.ID,"head_checkbox").location

screenshot():对元素进行截图
driver.find_element(By.ID,'su').screenshot('element.png')

 1 from selenium import webdriver
 2 from selenium.webdriver.common.by import By
 3 
 4 driver = webdriver.Firefox()
 5 driver.get('https://www.baidu.com')
 6 driver.find_element(By.ID,'kw').send_keys('selenium')
 7 driver.find_element(By.ID,'kw').clear()
 8 driver.find_element(By.ID,'su').click()
 9 driver.find_element(By.ID,'form').submit()#类似做了点击登录,1、提交表单(get、post)  2、解决有些大表单提交按钮在浏览器下方固定隐藏,元素定位不到
10 driver.find_element(By.CLASS_NAME,'s_ipt').size#返回对象尺寸
11 driver.find_element(By.CLASS_NAME,'mnav.c-font-normal.c-color-t').text#获取对象文本
12 driver.find_element(By.CLASS_NAME,'bg.s_btn').get_attribute()#获取对象的属性值
13 driver.find_element(By.CLASS_NAME,'bg.s_btn').get_property()#一般不用,和get_attribut()类似
14 driver.find_element(By.ID,'kw').is_displayed()#用来判断对象是否可见,即css的displ属性是否为none
15 driver.find_element(By.ID,'kw').is_enabled()#判断对象是否被禁用
16 driver.find_element(By.ID,'kw').is_selected()#判断对象是否被选中
17 driver.find_element(By.ID,'su').screenshot('element.png')#截图,java要截图比较麻烦,需要用到AotoIt

 

posted @ 2022-09-09 16:59  TesterWei  阅读(244)  评论(0编辑  收藏  举报