Functional testing - python, selenium and django

Functional testing  - python selenium django - Source Code :

from selenium import webdriver
from selenium.webdriver.common.by import By

from django.test import LiveServerTestCase

class Browser():  #(Run more than one testcases on one browser)
  browser = None
  def __new__(cls):
    Browser.browser = Browser.browser or webdriver.Firefox()
    return Browser.browser

class Base(LiveServerTestCase):
  def setUp(self):
    self.browser = Browser()
    self.browser.maximize_window()
    self.browser.implicitly_wait(10)
    self.flag_close_browser = None
    self.browser.get(self.live_server_url)

  def tearDown(self):
    if self.flag_close_browser == 1:
      self.browser.quit()

  def login(self, user_name, password):
    self.find_element(By.NAME, ‘user_name‘).send_keys(user_name)
    self.find_element(By.NAME, ‘pwd‘).send_keys(password)
    self.find_element(By.TAG_NAME, ‘button‘).submit()
  

  def find_element(self, find_type, element):
    obj = self.browser.find_element(find_type, element)
    if obj.get_attribute(‘type‘) == ‘text‘ and obj.is_displayed():
      obj.clear()
    return obj

  def find_elements(self, find_type, element):
    obj_list = self.browser.find_elements(find_type, element)
    for obj in obj_list:
      if obj.get_attribute(‘type‘) == ‘text‘ and obj.is_displayed():
        obj.clear()
    return obj_list

  

时间: 2024-10-02 01:10:55

Functional testing - python, selenium and django的相关文章

《一头扎进》系列之Python+Selenium框架实战篇4- 价值好几K的框架,呵!这个框架有点意思啊!!!

1.简介 前面文章,我们实现了框架的一部分功能,包括日志类和浏览器引擎类的封装,今天我们继续封装一个基类和介绍如何实现POM.关于基类,是这样定义的:把一些常见的页面操作的selenium封装到base_page.py这个类文件,以后每个POM中的页面类,都继承这个基类,这样每个页面类都有基类的方法,这个我们会在这篇文章由宏哥实现. 2.项目层级结构 1. 上一篇中我们已经创建好了项目层级结构,具体项目层级结构如下图.这里不再赘述,相关文件也如下: 3. 定位和截图类封装 1. 在实现封装基类里

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

ubuntu python apache2 wsgi django框架

在ubuntu上通过apatch2和wsgi部署django (亲手做过!!!) 一,我的python.django.apatch2版本: python:python -V 2.7.3 django:python -c "import django; print(django.VERSION)" (1, 9, 4, 'final', 0) apache2:/usr/sbin/apachectl -v Server version: Apache/2.2.22 (Ubuntu) Serv

Python Selenium 文件上传(二)

今天补充一种文件上传的方法 主要是因为工作中使用SendKeys方法不稳定,具体方法见: Python Selenium 文件上传(一) 这种方法直接通过命令行执行脚本时没有问题,可以成功上传,但是如果通过saltstack 远程控制执行时,SendKeys就定位不到窗口了. 所以采用这种新的方式来实现文件上传功能,并完美的解决了这个问题. 具体操作步骤如下: 1.下载工具 AutoIt及使用 AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows

Python Selenium 文件上传(一)

昨天写了Web 文件下载的ui自动化,下载之后,今天就要写web 文件上传的功能了. 当然从折腾了俩小时才上传成功.下面写一下自己操作的步骤 首先网上说的有很多方法 如 input 标签的最好做了,直接定位到元素,然后再sendKeys("value")即可 <input id="file_name" class="text-1 w255" type="text" readonly="" value=

转 Python Selenium设计模式-POM

前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python selenium2开始UI级自动化测试并不是多么艰巨的任务.只需要定位到元素,执行对应的操作即可.下面我们看一下这个简单的脚本实现百度搜索. from selenium import webdriver import time driver = webdriver.Firefox() driver.i

Python+selenium自动化公共逻辑步骤封装

开篇 个人博客"Python+selenium的GUI自动化实现"提到的chrome与IE浏览器调用插件已上传至51CTO下载,对应链接分别为:chrome,http://down.51cto.com/data/2171584:IE,http://down.51cto.com/data/2171585:有需要的直接下载即可:  正文 关于自动化,其实质就是用机器操作代替手工执行,从而减少人力投入.节约项目运营成功.优秀的自动化框架,可能的一个发展过程,前期自动化用例写作实现过程,可能需

在独立的python文件调用django api

在独立的python文件调用django api加入下面代码: 1 import os 2 import sys 3 root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 4 if root not in sys.path: sys.path.append(root) 5 if os.environ.get('DJANGO_SETTINGS_MODULE') == None: os.environ.setdefaul

windows上Python开发--3.Django的基础知识

最近两天下了班,没事学习了django的开发,今天做个总结.其实大家可以从百度,google搜到一些django的入门视频,初步了解一下django的框架.学习一些基础的概念和知识.本篇主要是对自己这两天做的做个总结. 1.创建第一个views.py 上一篇文章我们在windows上搭建好了django的开发环境并建立一个测试demo. 在settings.py的同级目录下新建views.py目录.并输入以下代码 from django.http import HttpResponse def