Python+webdriver自动化脚本的封装调用

Auto.py调用Respository.py中封装好的方法:

Auto.py:

#!D:\Python3.7.2\python.exe
#-*-coding:utf-8-*-
from selenium import webdriver
import time
from Respository import Function
url = '*******'
username = '*******'
password = '*******'
driver = webdriver.Chrome()
Function().F1(username,password,url,driver)
Function().F2(driver)

Respository.py:

import time
class Function():
    def F1(self,username,password,url,driver):
        driver.get(url)
        driver.maximize_window()
        driver.find_element_by_name('userName').send_keys(username)
        driver.find_element_by_id('password').click()
        driver.find_element_by_id('password').send_keys(password)
        driver.find_element_by_css_selector('.button').click()
    def F2(self,driver):
        driver.find_element_by_xpath("//div[@id='apDiv33']").click()
        time.sleep(3)
        handles = driver.window_handles
        driver.switch_to.window(handles[1])
        driver.find_element_by_xpath("//div[@class='l-accordion-content']/a[8]").click()
        time.sleep(5)
        driver.find_element_by_xpath("//div[@class='l-accordion-content']/a[6]").click()

Test.py调用Public.py封装好的方法:

Test.py:

#-*-coding:utf-8-*-
from selenium import webdriver
import time
from Public import Loginzxw
driver = webdriver.Chrome()
Loginzxw().login(driver)
time.sleep(3)
driver.quit()

Public.py:

#-*-coding:utf-8-*-
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class Loginzxw():
    def login(self,browser):
        url = "https://www.*****.net"
        browser.get(url)
        browser.maximize_window()
        element = WebDriverWait(browser,10,0.5).until(EC.presence_of_element_located((By.LINK_TEXT, "登录")))
        browser.find_element_by_link_text("登录").click()
        browser.find_element_by_id('loginStr').send_keys("****")
        browser.find_element_by_id('pwd').send_keys("****")
        browser.find_element_by_xpath("//button[@type='submit']").click()

Python中定义方法时,self怎么理解?

  在定义方法的时候有一个self参数,在所有的方法声明中都要用到这个参数,这个参数代表实例对象本身,当你用实例调用方法的时候,由解释器自动的把实例对象本身悄悄的传递给方法,不需要你自己传递self进来,例如有一个带有两个参数的方法,你所有调用只需要传递进来两个参数。

Python中有self和没有self的问题?

定义方法的时候加了self,那么在调用这个类中的方法时就必需要实例化一个对象,即:类(对象).方法(参数) 
定义方法的时候没有加self,那么调用这个类的方法时就可以直接调用方法,即:类().方法(参数)

类本身的局部变量(个人的认为定义在方法以外不以self开头的变量是类本身的局部变量)是可以被直接掉用的,注意这里不是指上面所说的方法内的局部变量(这两个命名空间不同)。如果方法中有有变量与类的局部变量同名,那么方法中的局部变量将会屏蔽类中的局部变量即类中的局部变量不再起作用
 
posted @ 2019-08-06 21:19  Avicii_2018  阅读(1561)  评论(0编辑  收藏  举报