学习笔记之webdriver_api_03

下载文件

在火狐浏览器中下载selenium的Python代码:

from selenium import webdriver
import os,time
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

driver = webdriver.Firefox(firefox_profile=fp)
driver.get("http://pypi.Python.org/pypi/selenium")
driver.find_element_by_partial_link_text("selenium-2").click()

cookie的操作

from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://www.youdao.com")
#获取cookie信息
cookie = driver.get_cookies()
#将获取的cookie的信息打印出来
print(cookie)
driver.quit()
'''
get_cookies()获得所有cookie信息
get_cookie(name)返回特定name值有cookie信息
add_cookie(cookie_dict)添加cookie,必须有name和value值
delete_cookie(name)删除特定(部分)的cookie信息
delete_all_cookie()删除所有cookie信息
'''

添加cookie:

from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://www.youdao.com")
driver.add_cookie({'name':'key-aaaaaaa','value':'value-bbbbbbb})
#遍历cookie中的name和value信息打印,当然还有上面添加的信息
for cookie in driver.get_cookie():
     print ("%s ->%s"%(cookie['name'],cookie['value']))

调用JavaScript

用webdriver调用JS实现滚条滚动:

#左边距,上边距
#window.scrollTo(0,450);

from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
#搜索
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(2)
#将滚动条移动到页面的底部,这种写法只能操作上下
js = "document.documentElement.scrollTop=10000"
driver.execute_script(js)
time.sleep(3)

#将滚动条移动到某个位置,这种写法可以操作上下的滚动条跟左右的滚动条
js1 = "window.scrollTo(0,450)"
driver.execute_script(js1)
time.sleep(3)

#将滚动条移动到页面的顶部,这种写法只能操作上下
js_ = "document.documentElement.scrollTop=0"
driver.execute_script(js_)
time.sleep(3)
driver.quit()

窗口截图

有错误就截图,这里演示的就是个有错误的:

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
try:
    driver.find_element_by_id('kw_error').send_keys('selenium')
    driver.find_element_by_id('su').click()
except:
    driver.get_screenshot_as_file("D:\\baidu_error.png")
driver.quit()

关闭窗口

driver.quit()#关闭所有窗口
driver.close() #只关闭当前窗口

验证码的处理

去掉验证码

这个方法最简单,对于开发人员来说,只需要把验证码注释掉就可以了,但是在测试环境,这样做可以省去测试人员的麻烦,但是在正式环境下,就会对系统带来一定的风险

设置万能码

import random
#生成一个1000到9999之间的随机整数
verify = random.randint(1000,9999)
print("生成的随机数:%d" %verify)
number = input("请输入随机数:")
print(number)
if number == verify:
    print("登录成功!")
elif number == 132741:
    print("登录成功")
else:
    print("验证码有误")

randint()用于生成随机数,设置随机数的范围是1000~9999之间,运行程序分别输入的验证码、万能码和错误的验证码

验证码识别技术

验证码识别类库,太麻烦,没研究

记录cookie

保存cookie多少天能使用
浏览器记录一个cookie,找到cookie,然后再跟开发沟通

总结

  1. 熟练掌握xpath/CSS定位的使用,这样遇到各种难以控制的属性时才不会变得束手无策
  2. 准备一份selenium Python bingbindings ,及时查阅webdriver所提供的方法
  3. 学习JavaScript语言
  4. 自动测试经常与前段打交道,熟悉一些前段技术,W3C中有很多,比如:http请求,cookie,session机制等
发布了24 篇原创文章 · 获赞 0 · 访问量 560

猜你喜欢

转载自blog.csdn.net/MoLi_D/article/details/104182688
今日推荐