分类目录归档:测试

7.4 特殊字符


特殊字符

selenium.webdriver.common.keys.Keys类

下面是一些特殊字符的代码:

ADD = u'\ ue025'

ALT = u'\ ue00a'

ARROW_DOWN = u'\ ue015'

ARROW_LEFT = u'\ ue012'

ARROW_RIGHT = u'\ ue014'

ARROW_UP = u'\ ue013'

BACKSPACE = u'\ ue003'

BACK_SPACE = u'\ ue003'

取消= u'\ ue001'

清除= u'\ ue005'

COMMAND = u'\ ue03d'

CONTROL = u'\ ...

阅读全文...

7.3 警告框


警告框

class selenium.webdriver.common.alert.Alert(driver)

允许对警告框进行操作

使用这个类和警告提醒框进行交互,这个类包含了 忽略、接受、输入 以及从提示框内获取文本的方法

接受和忽略弹框:

Alert(driver).accept()
Alert(driver).dismiss()

prompt里输入字符:

name_prompt = Alert(driver)
name_prompt.send_keys("Willian Shakephere")
name_prompt.accept()

读取prompt的提示字符:

alert_...

阅读全文...

7.2 Selenium Python行为链


行为链

class selenium.webdriver.common.action_chains.ActionChains(driver)

ActionChains可以完成简单的交互行为,例如鼠标移动,鼠标点击事件,键盘输入,以及内容菜单交互。这对于模拟那些复杂的类似于鼠标悬停和拖拽行为很有用

产生用户行为

当你在ActionChains对象上调用行为方法时,这些行为会存储在ActionChains对象的一个队列里。调用perform()时,这些动作就以他们队列的顺序来触发

ActionChains可以使用链式模型:

menu = driver.find_element_by_css_...

阅读全文...

7.1 Selenium Python异常


异常

所有的页面驱动代码里都可能抛出异常。

exception selenium.common.exceptions.ElementNotSelectableException(msg=None,screen=None,stacktrace=None)

基于 selenium.common.exceptions.InvalidElementStateException

当试图选中一个不能选中的元素时抛出 例如,选中一个script元素

exception selenium.common.exceptions.ElementNotVisibleException(msg=None,scre...

阅读全文...

6.Selenium Python页面对象


页面对象

这章是对 页面对象设计模型的特别指导。一个页面对象代表了你要测试的用户接口交互的区域。

使用页面对象模型的好处: 可以写出能在多个测试案例里复用的代码 减少重复代码 * 如果用户接口更改,只需要在一个地方做相应修改即可

测试案例

下面这个测试案例测试了在python.org网页上搜索一个单词并确认有相应的搜索结果:

import unittest
from selenium import webdriver
import page

class PythonOrgSearch(unittest.TestCase):
    """一个简单展示页面对象如何工作的类"""

   ...

阅读全文...

5.Selenium Python等待事件


Waits

现在很多Web应用都在使用AJAX技术。浏览器载入一个页面时,页面内的元素可能是在不同的时间载入的,这会加大定位元素的困难程度,因为元素不在DOM里,会抛出ElementNotVisibleException异常,使用waits,我们就可以解决这个问题。Waiting给(页面)动作的执行提供了一些时间间隔-通常是元素定位或者其他对元素的操作。

Selenium WebDriver提供了两类waits- 隐式和显式。显式的waits会让WebDriver在更深一步的执行前等待一个确定的条件触发,隐式的waits则会让WebDriver试图定位元素的时候对DOM进行指定次数的轮询...

阅读全文...

4.Selenium Python元素定位


元素定位

我们有许多方法对页面的元素进行定位,你可以根据自己的需要选择最合适的一种。Selenium提供了下面的方法进行元素定位: find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name find_element_by_css_selector

寻找多个元素(下列方法会返回一个list,其余使用方式相...

阅读全文...

3.Selenium Python导航


导航

你用WebDriver要做的第一件事就是指定一个链接,一般我们使用get方法:

driver.get("http://www.google.com")

WebDriver会等待页面完全加载完(就是onload函数被触发了),才把程序的控制权交给你的测试或者脚本。 但是如果你的页面用了太多的AJAX,那么这个机制就没什么卵用了,因为它不知道页面到底是什么时候加载完。如果你需要确定页面完全加载完了,你可以使用waits

页面交互

我们比较喜欢做的事情就是和页面交互,准确的说,是和页面里的HTML元素交互。首先,我们要找到一个元素,WebDrive提供了许多方法查找元素,例如,给定一个这...

阅读全文...

2.Selenium Python开始


开始

简单的使用

如果你已经安装好Python和Selenium,可以这样开始使用:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
elem.send_key...

阅读全文...

1.Selenium Python安装


安装

介绍

Selenium Python提供了一个简单的API方便我们使用编写Selenium WebDriver功能/验收测试。通过Selenium Python的API,你可以直观地使用所有的Selenium WebDriver功能

Selenium Python提供了一个很方便的接口来驱动Selenium WebDriver,例如Firefox, ,Chrome,Ie以及远程,请立即获取iTunes目前的python版本有2.7,3.2,3.3和3.4。

下载python的selenium安装包

可以你从这里下载蟒蛇的硒安装包,但是的更好办法的英文用pip来安装。 Python3...

阅读全文...