51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1875|回复: 0
打印 上一主题 下一主题

Python Webdriver API

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-6-14 16:10:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一、基本知识

以下是打开浏览器链接和关闭的最基本的操作了,这里会出现问题的也可以留言@me哦~
1、from selenium import webdriver  #导入webdriver函数之后还有些是函数中的某些类
2、driver = webdriver.Chrome() #规定运行脚本的浏览器,自己下载驱动并配置环境变量
3、driver.get("http://www.baidu.com") #打开测试的链接
4、driver.quit() #退出浏览器
二、操作测试对象

根据不同的事件来定位元素可参见我的另一篇文章:
selenium篇(二)之简单的对象(元素)定位
1、driver.find_element_by_id("kw").clear() #清除输入框内的内容
   driver.find_element_by_id("kw").send_keys("selenium") #输入框输入内容
2、driver.find_element_by_id("su").click() #点击按钮
3、driver.find_element_by_id("su").submit() #提交表单
三、其他常见操作

1、import time #调入时间函数
time.sleep(3) #休眠三秒
2、driver.implicitly_wait(30) #智能等待30秒
3、driver.maximize_window() #最大化浏览器窗口
driver.set_window_size(1280,960) #设置浏览器的长宽
4、driver.forward() #前进到下一个页面
driver.back() #后退到上一个页面


###四、键盘事件
>- 基本引用
from selenium.webdriver.common.keys import Keys #引入keys函数
通过send_keys来调用按键的名称(按键名大写),例如:
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").send_keys(Keys.ENTER)

- 键盘按键的用法
--coding:utf-8--

from selenium import webdriver
from selenium.webdriver.common.keys import Keys #引入keys包
import time #添加时间函数
browser=webdriver.Chrome()
browser.maximize_window()
time.sleep(3) #添加睡眠时间
browser.get("http://www.jianshu.com/")
time.sleep(3)
browser.find_element_by_id("q").send_keys("selenium")
browser.find_element_by_id("q").send_keys(Keys.ENTER) #利用键盘enter键搜索内容

- 键盘组合键用法
--coding:utf-8--

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
browser=webdriver.Chrome()
browser.maximize_window()
time.sleep(0.3)
browser.get("http://www.baidu.com")
time.sleep(0.3)
browser.find_element_by_id("kw").send_keys("selenium")
time.sleep(0.3)
browser.find_element_by_id("kw").send_keys(Keys.CONTROL,'a') #ctrl+A全选
time.sleep(0.3)
browser.find_element_by_id("kw").send_keys(Keys.CONTROL,'x') #ctrl+x剪切
time.sleep(0.3)
browser.find_element_by_id("kw").send_keys("webdriver api")
browser.find_element_by_id("su").send_keys(Keys.ENTER)
time.sleep(0.3)
browser.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
time.sleep(0.3)
browser.find_element_by_id("kw").send_keys(Keys.DELETE)
time.sleep(3)
browser.find_element_by_id("kw").send_keys(Keys.CONTROL,'v') #ctrl+v粘贴
browser.find_element_by_id("su").send_keys(Keys.ENTER)
time.sleep(3)
browser.quit()

![常用的键盘按键.png](http://upload-images.jianshu.io/ ... -7f407526d69d742d.p
ng?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

###五、鼠标事件
>- 基本引用
from selenium.webdriver.common.action_chains import ActionChains #引入actionchains包
1、context_click() 右击
2、double_click() 双击
3、drag_and_drop() 拖动

- context_click() 右击事件
--coding:utf-8--

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
browser=webdriver.Chrome()
time.sleep(0.5)
browser.maximize_window()
browser.get("http://www.baidu.com")
right=browser.find_element_by_xpath(".//*[@id='lg']/img") #xpath定位元素,可利用Firefox工具的filepath哦~
ActionChains(browser).context_click(right).perform() #利用ActionChains类调用

browser.quit()

- double_click() 双击事件
网页中未找到需要双击的链接或者文件,如果有也是和上面的代码差不多,改下事件名称即可哦~O(∩_∩)O

- drag_and_drop() 拖动事件
--coding:utf-8--

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
browser=webdriver.Chrome()
time.sleep(0.5)
browser.maximize_window()
browser.get("http://www.sucaihuo.com/jquery/12/1211/demo/") #博主找来的案例网站基于css的canvas元素
right=browser.find_element_by_xpath("html/body/ul/li[1]/img")
left=browser.find_element_by_xpath("html/body/ul/li[12]/img")
ActionChains(browser).drag_and_drop(right,left).perform()
time.sleep(3)
browser.quit()


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 10:09 , Processed in 0.067819 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表