您的位置:首页 > 编程语言 > Python开发

Python Selenium 部分API详细使用方法(二)

2017-11-08 17:26 561 查看
摘要: Python Selenium 部分API详细使用方法(二)

**************************************************************************************************

三、操作测试对象

一般来说,所有有趣的操作与页面交互都将通过WebElement 接口,包括上一节中介绍的对象定位,
以及本节中需要介绍的常对象操作。
webdriver 中比较常用的操作元素的方法有下面几个:

clear 清除元素的内容,如果可以的话

send_keys 在元素上模拟按键输入

click 单击元素

submit 提交表单

例如:

driver.find_element_by_id("user_name").clear()
driver.find_element_by_id("user_name").send_keys("username")
driver.find_element_by_id("user_pwd").clear()
driver.find_element_by_id("user_pwd").send_keys("password")
driver.find_element_by_id("dl_an_submit").click()
#通过submit() 来提交操作
#driver.find_element_by_id("dl_an_submit").submit()


clear() 用于清除输入框的默认内容

send_keys("xx") 用于在一个输入框里输入xx 内容

click() 用于单击一个按钮、连接等

submit() 提交表单

1、WebElement 接口常用方法

WebElement 接口除了我们前面介绍的方法外,它还包含了别一些有用的方法。下面,我们例举例几
个比较有用的方法。

size #返回元素的尺寸

text #获取元素的文本

get_attribute(name) #获得属性值

is_displayed() #检查该元素是否用户可见

例如:

size=driver.find_element_by_id("kw").size#返回百度输入框的宽高
text=driver.find_element_by_id("cp").text #返回百度页面底部备案信息
#返回元素的属性值,可以是id、name、type 或元素拥有的其它任意属性
attribute=driver.find_element_by_id("kw").get_attribute('type')
#返回元素的结果是否可见,返回结果为True 或False
result=driver.find_element_by_id("kw").is_displayed()

**************************************************************************************************

四、鼠标事件

前面例子中我们已经学习到可以用 click()来模拟鼠标的单击操作,而我们在实际的 web 产品测试中发现,有关鼠标的操作,不单单只有单击,有时候还要和到右击,双击,拖动等操作,这些操作包含在ActionChains 类中。
ActionChains 类鼠标操作的常用方法:

context_click() 右击

double_click() 双击

drag_and_drop() 拖动

move_to_element() 鼠标悬停在一个元素上

click_and_hold() 按下鼠标左键在一个元素上

1、右击操作

#引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
...
#定位到要右击的元素
right =driver.find_element_by_xpath("xx")
#对定位到的元素执行鼠标右键操作
ActionChains(driver).context_click(right).perform()


ActionChains 用于生成用户的行为;所有的行为都存储在 actionchains 对象中。通过 perform()执行存储的行为。

2、鼠标双击操作

#引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
...
#定位到要双击的元素
double =driver.find_element_by_xpath("xxx")
#对定位到的元素执行鼠标双击操作
ActionChains(driver).double_click(double).perform()


3、鼠标拖放操作

drag_and_drop(source, target)
在源元素上按下鼠标左键,然后移动到目标元素上释放。
source: 鼠标按下的源元素。
target: 鼠标释放的目标元素。

#引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
...
#定位元素的原位置
element = driver.find_element_by_name("xxx")
#定位元素要移动到的目标位置
target = driver.find_element_by_name("xxx")
#执行元素的移动操作
ActionChains(driver).drag_and_drop(element, target).perform()


4、鼠标移动上元素上

#引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
...
#定位到鼠标移动到上面的元素
above = driver.find_element_by_xpath("xxx")
#对定位到的元素执行鼠标移动到上面的操作
ActionChains(driver).move_to_element(above).perform()


5、按下鼠标左键

#引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
...
#定位到鼠标按下左键的元素
left=driver.find_element_by_xpath("xxx")
#对定位到的元素执行鼠标左键按下的操作
ActionChains(driver).click_and_hold(left).perform()

**************************************************************************************************

五、键盘事件

from selenium.webdriver.common.keys import Keys #在使用键盘按键方法前需要先导入 keys 类包。

下面经常使用到的键盘操作:

send_keys(Keys.BACK_SPACE) 删除键(BackSpace)

send_keys(Keys.SPACE) 空格键(Space)

send_keys(Keys.TAB) 制表键(Tab)

send_keys(Keys.ESCAPE) 回退键(Esc)

send_keys(Keys.ENTER) 回车键(Enter)

send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)

send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)

send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)

send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)

**************************************************************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: