Selenium基本使用与注意事项


#coding=utf-8

from selenium import webdriver

import time

import random

driver = webdriver.Chrome()

driver.get('url')

driver.find_element_by_name('tb_uname').send_keys('username')

driver.find_element_by_name('tb_pwd').send_keys('password')

driver.find_element_by_name('tb_code').send_keys('')

time.sleep(10)

driver.find_element_by_name('btnSave').click()

driver.find_element_by_link_text('xxxx').click()

driver.find_element_by_link_text('yyyy').click()

length = len(driver.find_element_by_xpath("//div[@id='list']").find_elements_by_link_text('编辑'))

for i in range(0,length):

l = random.randint(1,9)

editions = driver.find_element_by_xpath("//div[@id='list']").find_elements_by_link_text('编辑')

edit = editions[i]

edit.click()

driver.find_element_by_id('txtnewstype3').click()

driver.find_element_by_xpath('//ul[@id="typeoption3"]/li[%d]'%l).click()

time.sleep(1)

driver.find_element_by_id('ckhead').click()

time.sleep(1)

driver.find_element_by_id('ckpush').click()

time.sleep(1)

driver.find_element_by_id('btnsave').click()

time.sleep(1)

driver.switch_to_alert().accept()

driver.back()

time.sleep(1)

driver.find_element_by_xpath("//div[@id='list']").find_element_by_link_text('删除').click()

  首先注意事项

  有时页面还没加载出来,脚本找不到元素,就会报错,所以添加思考时间是非常必要的,切记。

  进入一个页面后,简单实用back()函数,再进行查找元素时,会报错,所以要将不断来回查找的元素放进循环体内

  driver.switch_to_alert().accept() 处理弹窗"接受"作用

  l = random.randint(1,9) 随机函数,根据用例要求进行实用

  '[%d]'%l 直白的理解就是将后面 l 的值传递给%d(整数)

  find_element_by_link_text 和 find_elements_by_link_text 有区别,后者主要是查找整个页面相同的函数,即可迭代。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2025-01-31 17:50:17

Selenium基本使用与注意事项的相关文章

Selenium自动化测试用例设计注意事项(一)

自动化测试设计简介 我们在本章提供的信息,对自动化测试领域的新人和经验丰富的老手都是有用的.本篇中描述最常见的自动化测试类型, 还描述了可以增强您的自动化测试套件可维护性和扩展性的"设计模式".还没有使用这些技术的.有经验的自动化测试工程师会对这些技术更加感兴趣. 测试类型 您应该测试应用程序中的哪些部分?这取决于您的项目的各种影响因素:用户的期望,时间期限,项目经理设置的优先事项等等.但是,一旦项目边界定义完成,作为测试工程师,你必须做出要测试什么的决定. 为了对Web应用的测试类型

Selenium自动化测试用例设计注意事项(二)

UI映射 一个UI映射是一种机制,它存储所有的定位器的测试套件在一个地方,方便修改UI元素的路径标识符或改变在AUT.测试脚本,然后使用UI地图定位以被测试的元件.基本上,UI地图是一个存储库的测试脚本对象,对应于被测试的应用程序的UI元素. 是什么让一个UI地图有帮助吗?其主要目的是测试脚本的管理更加容易.当定位需要编辑,有一个中央位置轻松地找到对象,而不是通过搜索测试脚本代码.此外,它允许改变的标识符在一个地方,而不是在多个地方,以使更改在测试脚本,或为此事,在多个测试脚本. 总之,一个UI

安装win7系统后需要注意的三大事项

  安装win7系统后需要注意的三大事项 1.禁止休眠 休眠过程中会导致网络也会跟着断开,而且还会占用系统盘的空间,关闭的话还可以提高运行速度的,何乐而不为呢? 2.删除旧系统备份文件 在win7系统安装完毕之后,默认情况下是会自动生成系统备份的,但是因为系统备份所占据的内存空间比较大,所以建议大家删除.在后期如果遇到问题,可以选择启动系统还原功能即可修复了. 3.虚拟内存的设置 在安装完成之后为了能够有效的提升运行速度,建议用户可以转移内置的虚拟内存,如果win7系统用户自带的内存空间较大的话

总结Selenium WebDriver中一些鼠标和键盘事件的使用

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

[原][自动化测试]Robot Framework Selenium基本使用

Robot Framework Selenium基本使用 首先要说一下,一切和Robot Framework相关的资料都可以通过官方 http://code.google.com/p/robotframework/ 查询学习. 一.工具基本安装 准备条件: 1.Python语言及库,环境变量等: a) 准备文件:python-2.7.4.amd64.msi b) 基本安装:最好保持C盘默认路径,方便后面安装 c) 基本配置:环境变量配置很简单:path中添加安装目录,默认路径的话是C:\Pyth

数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置

数据抓取是一门艺术,和其他软件不同,世界上不存在完美的.一致的.通用的抓取工具.为了不同的目的,需要定制不同的代码.不过,我们不必Start from Scratch,已经有许多的基本工具.基本方法和基础框架可供使用.不同的工具.不同的方法.不同的框架的特点也不同.了解这些工具.方法和框架是首要任务,接下来就需要明白它们的差异都在哪里.什么情境该用什么东东,最后才是析出规则.编写代码.运行程序来抓取数据.所以说,其实数据抓取的学习路线,不但很长而且很杂.     为了一个特定的目的,我需要爬取G

并行安装Visual Studio系统的注意事项分析

有时候出于系统兼容性的需要,开发人员可能会在操作系统上安装Visual的各个版本.如 Visual2008与2005.为什么开发人员会有这么需要呢?如原先开发人员在2005环境下开发了一个 ERP系统.现在开发人员觉得2008这个开发平台比较适合自己,就需要将这个软件移植到2008的 开发环境下.由于不同的版本在功能上会有所差异,为此就需要同时使用两个不同版本的开发 环境,以便于测试系统的兼容性.此时就需要在同一台计算机上同时部署多个版本的开发环境 .利用专业的术语就是说,Visual的并行安装

MySQL主从严重延迟后迁移Transfer的注意事项

MySQL-Transfer逐渐有一些其他公司的同学在使用,这里会持续更新运维上的注意事项.        背景        正常情况下,若要从原来的主从切换成Transfer 模式,只需要作如下步骤: 1.在slave相同机器上部署一个Transfer,并配置好各种remote_slave参数 2.在slave上stop slave 3.把slave的表结构dump给transfer 4.从slave中查看当前执行到master的位置 5.在transfer执行change master x

ide-小白求教:selenium IDE 是否支持多标签页

问题描述 小白求教:selenium IDE 是否支持多标签页 每次播放到另一个标签页的时候就报错 然后试着去用webdriver,用eclipse写的脚本代码都对的 但运行不了 public class day1Test { private WebDriver driver; private String baseUrl; @Before public void setUp() throws Exception { System.setProperty(""webdriver.fir