Selenium自动化测试笔记(1)

Selenium自动化测试笔记

层级选择

ActionChains:用于生成用户的行为;所有行为都储存在actionchains对象。

通过perform()执行所有储存行为

定位frame中的元素

switch_to.frame(id\name\index)方法可以把当前定位的主体切换到frame里,用于处理多框架的方法

我们可以从frame的实质去理解:frame实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此菜需要用到switch_to.frame方法去获取frame中嵌入的页面,对那个页面中的元素进行定位。

注意:所有frame必须都使用switch_to.from才可以,不然会报错

对话框处理

很多情况下对话框是一个iframe,处理起来稍微有点麻烦,但现在很多欠框架的对话框是div形式的,这就让我们的处理变得十分简单。

多窗口之间的切换

要想在多个窗口之间切换,首先需要获得每一个窗口的唯一标识符(句柄)。通过获取句柄来区分不同的窗口,从而对不同的窗口进行操作。

所用方法:

  • current_window_handle 获取当前窗口句柄
  • window_handles 返回所有窗口的句柄到当前会话
  • switch_to.window 用于处理多窗口操作的方法

alert/confirm/prompt处理

webdriver 中处理 JavaScript 所生成的 alert、confirm 以及 prompt 是很简单的。

具体思路是使用switch_to.alert()方法定位到 alert/confirm/prompt,

然后text/accept/dismiss/send_keys 按需进行操作。

  • text 返回alert/confirm/prompt中的文字信息
  • accept 点击确认按钮
  • dismiss 点击取消按钮,如果有的话
  • send_keys 输入值,这个alert/confirm没有就不能用了没,不然会报错

下拉框处理

分页处理

上传文件

打开上传文件页面

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

send_keys()方法不仅可以输入内容外,也可以跟一个本地的文件路径。从而达到上传的目的。

下载文件

webdriver允许我们设置默认的文件下载路径。也就是说自动下载并且存在设置那个目录中。

确定下载文件的Content-Type

Content-Type,内容类型,一般是指网页中存在的Cotent-Type,用于定义网络文件的类型和网页的编码,决定浏览器以什么形式,什么编码读取这个文件。想要下载文件,首先要确定你所要下载的文件的类型。

要识别自动文件的下载类型可以使用curl.

curl是利用URL语法在命令行下工作的开源文件传输工具。

另一种方法是使用requests模块来查找内容类型。Requests是一个Python的HTTP客户端库,默认下载的python环境不包含这个类库,需要另外安装。使用方法如下:

~~~python
import requests

print (requests.head(“https://www.python.org“).headers[“content-type”])
~~~

一旦确定了内容的类型,就可以用它来设置Firefox的默认配置文件,具体实例如下:

~~~python

coding=utf-8

import os
from selenium import webdriver

fp = webdriver.FirefoxProfile()

设置成2表示使用自定义下载路径;使用0表示下载到桌面,设置成1表示下载到默认路径

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/zip”) #下载文件的类型

browser = webdriver.Firefox(firefox_profile=fp)
browser.get(“http://sahitest.com/demo/saveAs.htm“)
browser.find_element_by_partial_link_text(“selenium-2”).click()
~~~

browser.download.dir 用于指定你所下载文件的目录。
os.getcwd() 该函数不需要传递参数,用于返回当前的目录。
application/octet-stream 为文件的类型。

HTTP Content-type常用对照表

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值