selenium python自动化_python selenium 自动化测试

导入相关的函数: from selenium import webdriver

启动浏览器: driver= webdriver.Firefox() 当然也可以换成 IE 或 Chrome

定位元素: driver.find_element_by_id("kw").send_keys("selenium")

driver.find_element_by_id("su").click()

退出并关闭窗口的每一个相关的驱动程序:driver.quit()

关闭当前窗口: driver.close()

元素的定位

 · id

 · name

 · class name

 · link text

 · partial link text

 · tag name

 · xpath

 · css selector

添加等待时间

有时候为了保证脚本运行的稳定性,需要脚本中添加等待时间。

需要引入 time 包

Import time

time.sleep(0.3) #休眠 0.3 秒

通过添加 implicitly_wait() 方法就可以方便的实现智能等待

driver.implicitly_wait(30)

selenium.webdriver.remote.webdriver.implicitly_wait(time_to_wait)

隐式地等待一个无素被发现或一个命令完成;

这个方法每次会话只需要调用一次 time_to_wait: 等待时间

打印信息

print (driver.title) # 把页面 title 打印出来

打印 URL print ("now access %s" %(url))

浏览器最大化

driver.maximize_window() #将浏览器最大化显示

设置浏览器宽、高

driver.set_window_size(480, 800)

操作浏览器的前进、后退

browser.back()

browser.forward()

为了使过程让你看得更清晰,在每一步操作上都可以加了 print 和 sleep

操作测试对象

一般来说,webdriver 中比较常用的操作对象的方法有下面几个

click 点击对象

send_keys 在对象上模拟按键输入

clear 清除对象的内容,如果可以的话

submit 提交表单

text 用于获取元素的文本信息

get_attribute 获得属性值

键盘事件

 键盘按键用法

 键盘组合键用法

 send_keys() 输入中文乱码问题

from selenium import webdriver

from selenium.webdriver.common.keys import Keys #需要引入 keys 包

import os,time

// tab 的定位相相于清除了密码框的默认提示信息,等同上面的 clear()

driver.find_element_by_id("user_name").send_keys(Keys.TAB)

time.sleep(3)

driver.find_element_by_id("user_pwd").send_keys("123456")

// 通过定位密码框,enter(回车)来代替登陆按钮

driver.find_element_by_id("user_pwd").send_keys(Keys.ENTER)

// 也可定位登陆按钮,通过 enter(回车)代替 click()

driver.find_element_by_id("login").send_keys(Keys.ENTER)

// 输入框输入内容

driver.find_element_by_id("kw").send_keys("selenium")

time.sleep(3) #ctrl+a 全选输入框内容

driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')

time.sleep(3) #ctrl+x 剪切输入框内容

driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')

time.sleep(3) #输入框重新输入内容,搜索

driver.find_element_by_id("kw").send_keys(u"安妮 anan")

driver.find_element_by_id("su").click()

鼠标事件

ActionChains 类

 context_click() 右击

 double_click() 双击

 drag_and_drop() 拖动

from selenium.webdriver.common.action_chains import ActionChains

定位一组元素

定位选取这组元素的共同属性, 通过一个循环来控制每一个控件

多层框架/窗口定位

switch_to_frame()

switch_to_window()

先找到到 ifrome1(id = f1)

browser.switch_to_frame("f1")

再找到其下面的 ifrome2(id =f2)

browser.switch_to_frame("f2")

WebDriverWait(driver, 10)

10 秒内每隔 500 毫秒扫描 1 次页面变化,当出现指定的元素后结束。

is_displayed() 该元素是否用户可以见

class ActionChains(driver)

driver: 执行用户操作实例 webdriver 生成用户的行为。

所有的行动都存储在 actionchains 对象。通过 perform()存储的行为。

move_to_element(menu)

移动鼠标到一个元素中,menu 上面已经定义了他所指向的哪一个元素

to_element:元件移动到

perform() 执行所有存储的行为

上传文件操作

脚本要与 upload_file.html 同一目录

file_path = 'file:///' + os.path.abspath('upload_file.html') driver.get(file_path)

定位上传按钮,添加本地文件

driver.find_element_by_name("file").send_keys('D:\selenium_use_c ase\upload_file.txt')

time.sleep(2)

alert、confirm、prompt 的处理

text 返回 alert/confirm/prompt 中的文字信息

accept 点击确认按钮

dismiss 点击取消按钮,如果有的话

send_keys 输入值,这个 alert\confirm 没有对话框就不能用了,不然会报错

cookie 处理

driver.get_cookies() 获得 cookie 信息

add_cookie(cookie_dict) 向 cookie 添加会话信息

delete_cookie(name) 删除特定(部分)的 cookie

delete_all_cookies() 删除所有 cookie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值