1.selenium实战之从txt文档读取配置信息并执行登录
前置条件:
1.本机已搭建ECShop3.0网站
2.在脚本目录创建了user.txt文本如下:


目的:实现从txt中读取配置文件信息,本实战中,包含url地址、用户名、密码,然后进行ESChop的登录
附上代码:
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re, codecs, os # 定义函数从文本读取内容
def getValue(txtPath):
# 读取文本的路径
fp = codecs.open(txtPath, 'r', encoding='utf-8')
# 定义空列表
listData = []
for item in fp.readlines():
# 去掉多余的空格,并放入到列表中
listData.append(item.rstrip())
# 关闭文件
fp.close()
# 返回文本内容列表
return listData class Test(unittest.TestCase):
def setUp(self):
# 初始化浏览器
self.driver = webdriver.Firefox()
# 设置全局等待时间
self.driver.implicitly_wait(30)
# 设置txt读取的路径
txtPath = os.getcwd() + '\\user.txt'
# 将返回的列表赋值给自己定义的values属性,便于在用例中调用
self.values = getValue(txtPath)
# 获取到访问的url地址,从values中取
self.base_url = self.values[0]
self.verificationErrors = []
self.accept_next_alert = True def test_(self):
driver = self.driver
driver.get(self.base_url)
# 定位用户名输入框
driver.find_element_by_name("username").clear()
# 定位用户名输入框并输入密码
driver.find_element_by_name("username").send_keys(self.values[1])
# 定位密码输入框
driver.find_element_by_name("password").clear()
# 定位密码输入框并输入密码
driver.find_element_by_name("password").send_keys(self.values[2])
# 定位登录按钮并点击
driver.find_element_by_css_selector("input.btn-a").click() def tearDown(self):
# 退出浏览器
self.driver.quit()
self.assertEqual([], self.verificationErrors) if __name__ == "__main__":
# 执行case
unittest.main()
1.selenium实战之从txt文档读取配置信息并执行登录的更多相关文章
- C++ txt文档读取
void readfile(string filepath){ ifstream myfile; if (!myfile) { cout << "打开文件出错!"; e ...
- C# 将内容写入txt文档
<1> FileStream fs = new FileStream(@"D:\text.txt", FileMode.Append); StreamWriter s ...
- QTP操作txt文档
QTP可以在txt文件(文本文件中读取数据) 首先创造一个文档对象 set fso = createObject("scripting.filesystemobject") 然后用 ...
- 利用IDL将一个txt文档拆分为多个
测试.txt文档,每47行的格式相同,通过代码每47行存为一个txt,txt文档命名为其第一行数据. 代码如下: file='G:\data\测试.txt' openr,lun,file,/Get_L ...
- elk实战分析nginx日志文档
elk实战分析nginx日志文档 架构: kibana <--- es-cluster <--- logstash <--- filebeat 环境准备:192.168.3.1 no ...
- 用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理
用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理 我测了一组数据存到txt文件中,是个WIFI信号强度文档,里面有我们需要得到的数据,有没用的数据,想用matla ...
- WebService 实现BS环境与BS环境传递参数,根据参数生成txt文档
客户端: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Client.as ...
- 将txt文档按行分割
昨天遇到了一个需求,需要将txt文档按行分割,并指定了行数, 最近在用python,就在网上搜了一下,在参考了http://blog.csdn.net/zhang_red/article/detail ...
- 用C++向一个txt文档中写数据
bool CMaked::WriteFileMake(CString filePath, const char *isChange) { ofstream file; //filePath为该txt文 ...
随机推荐
- ubuntu server 启用mysql日志
1.要启动mysql日志,你就要找到mysql 核心的文件my.cnf (路径:/etc/mysql) 在命令窗口输入:cd /etc/mysql 在命令窗口输入:ls 你就可以看到my.cnf文件 ...
- git忽略未被跟踪和已被跟踪的文件
git的文件操作本质上来讲是基于文件索引来做追踪的. 至于忽略未跟踪(untrack)文件文件,git提供了三种方式 1 .gitignore 2 git config --global core ...
- Django之DjangoAdmin
前言: 当我们启动1个Django程序的时候,在程序的settings.py配置文件默认注册了1个名为'django.contrib.admin'的APP程序,并且配置了默认路由映射关系url(r'^ ...
- Android Studio build gradle project info 卡主不动解决方法.
项目里的: build.gradle 依赖 的gradle 版本 在每个项目里 gradle/wrapper/properties/gradle-wrapper.properties 配置文件里 用户 ...
- jq 如何获取多选框选中的值
jquery如何获取多选框选中的值,有两种方法 1.通过id获取是否选中(单个) 1)引入jquery文件 2)Html设计如下 <div> <span>运动类:</sp ...
- zabbix3.4.7实现企业微信告警,亲测可用!
Zabbix 新版微信告警 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信 ...
- Vue(一) 数据绑定和第一个Vue应用
学习 Vue.js 最有效的方法是查看官网文档 数据绑定和第一个Vue应用 先从一段简单的 HTML 代码开始,感受 Vue.js 最核心的功能. <!DOCTYPE html> < ...
- frameset的固定放置模式,不能放入<form runat="server">中
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="admin_default.as ...
- django+xadmin+echarts实现数据可视化
使用xadmin后功能比较强大,在后台展示统计图表,这个需求真的有点烫手,最终实现效果如下图: xadmin后台与echarts完全融合遇到以下问题: 1.没有现成的数据model 2.获得指定时间段 ...
- python学习 面向对象高级编程
---恢复内容开始--- 面向对象编程---oop,是一种编程思想,oop把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数 ...