【python】Selenium框架简单实践

selenium+Python(一)基本操作

#!/usr/bin/python
# -*- coding: utf8-*-


# (一)首先是文件开头上要写
from selenium import webdriver      #引入selenium模块。
from [selenium.webdriver.common.keys](http://selenium.webdriver.common.keys/) import Keys  #模拟键盘输入。
import random,time  #经常要用到,一个是产生随机数,一个是时间操作的功能


#(二)最简单的一段功能:
browser = webdriver.Firefox()   #启动chrome浏览器
time.sleep(3)  #停顿3秒
browser.maximize_window() #浏览器窗口最大化
#OutputLogin = Login(browser,username, password) #登录网页的函数,后续讲解
time.sleep(int(random.uniform(1, 10)))#随机产生一个1到9秒的随机整数,然后等待这个时间
browser.quit() #退出浏览器


#(三)定义一个登录系统的函数
def Login(browser,username, password): #要有冒号
    browser.get('网页的URL')  #浏览器登录网页的URL
    time.sleep(3)
    try:
        # find user login input box
        elem_user=browser.find_element_by_id("username")
        #这个是通过find_element_by_id函数来寻找定位网页上的id为username的控件
        elem_user.clear()
        elem_user.send_keys(username)
        #然后向这个控件发送username的值
        time.sleep(1)
        # find pwd input box
        elem_pwd=browser.find_element_by_id("password")
        elem_pwd.clear()
        elem_pwd.send_keys(password)
        time.sleep(1)
        # enter RETURN in pwd box to activate
        elem_pwd.send_keys(Keys.RETURN)
        #然后向这个控件发送回车键,注意,如果是键盘上的回车,SHIFT,CONTROL键之类的,要用Keys.控制键的名称作为输入。
        return username + "  login successfully \n"
    except:
        return username + "  login failed \n"
        pass

selenium+Python(二)定位元素

自动化测试中常用的功能是通过各种元素,例如id,class,xpath,css等内容来寻找定位元素,而且不光可以定位一个元素,还可以定位一队元素,然后逐个操作。

#定义一个定位操作单个元素的函数
def Signup_Click(browser):
    input3 = browser.find_element_by_class_name("checkbtn")
    try:
        input3.click()
        return "Signup successfully \n"
    except:
        return "Signup failed \n"
        pass

#定义一个定位操作多个元素的函数
def Love_Clicks(browser,k):
    inputs2 = browser.find_elements_by_class_name("love")
    #注意,是elements,不是element,复数形式
    for input2 in inputs2:
        try:
            input2.click()
        except:
            pass
    return str(i)+" Love successfully \n"

selenium+Python(三)键盘和鼠标操作

Python也可以模拟鼠标和键盘的操作,不过要注意的是键盘带来的屏幕游标位置的挪动和鼠标在屏幕上的挪动位置,两个是不同的。

#首先要在文件头引入
from [selenium.webdriver.common.action_chains](http://selenium.webdriver.common.action_chains/) import ActionChains

#定义一个函数
def Transfer_Clicks(browser):
    browser.execute_script("window.scrollBy(0,-document.body.scrollHeight)","")
    #这个是执行一段Javascript函数,将网页滚到到网页顶部。
        try:
            inputs1 = browser.find_elements_by_class_name("feedAttr_transfer")
            for input1 in inputs1:
                try:
                    ActionChains(browser).click(input1).perform()
                    #模拟鼠标点击控件input1,此时的鼠标位置在input1处
                    browser.execute_script("window.scrollBy(0,200)","")
                    #向下滚动200个像素,鼠标位置也跟着变了
                    ActionChains(browser).move_by_offset(0,-80).perform()
                    #向上移动鼠标80个像素,水平方向不同
                    ActionChains(browser).click().perform()
                    #鼠标左键点击
                    ActionChains(browser).key_down(Keys.TAB).perform()
                    #模拟tab键的输入
                    ActionChains(browser).send_keys(Keys.ENTER).perform()
                    #模拟输入ENTER键
                except:
                    pass
        except:
            pass
        return "Transfer successfully \n"

杰云测试快捷登陆

#coding=utf8
from selenium import webdriver
import time
def Login(browser,url,username, password):
    browser.get(url)
    time.sleep(1)
    try:
        # find user login input box
        elem_user=browser.find_element_by_id("j_username")
        elem_user.clear()
        elem_user.send_keys(username)
        time.sleep(1)
        # find pwd input box
        elem_pwd=browser.find_element_by_id("j_password")
        elem_pwd.clear()
        elem_pwd.send_keys(password)
        time.sleep(1)
        # submit
        elem_sub = browser.find_element_by_id("logoutBtn")
        elem_sub.click()
        # action
        # print browser.current_url
        time.sleep(3)
        # get rdp file (current session)
        # print browser.find_element_by_xpath('/html/body/iframe').get_attribute('src')
        return username + "login successfully \n"
    except:
        return username + "login failed \n"
if __name__ == '__main__':
    browser = webdriver.Chrome()
    browser.maximize_window()
    url = 'https://yangtzi.vicp.net:843'
    usrname = 'user3'
    password = '123456'
    Login(browser,url,usrname,password)
    browser.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值