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


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

    Auto.py:

    #!D:Python3.7.2python.exe
    #-*-coding:utf-8-*-
    from selenium import webdriver
    import time
    from Respository import Function
    url = 'http://ics.chinasoftosg.com/SignOnServlet'
    username = '159853'
    password = 'Nancy2018?'
    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("猪太肥001")
            browser.find_element_by_id('pwd').send_keys("Nancy2018")
            browser.find_element_by_xpath("//button[@type='submit']").click()

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

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

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

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

    类本身的局部变量(个人的认为定义在方法以外不以self开头的变量是类本身的局部变量)是可以被直接掉用的,注意这里不是指上面所说的方法内的局部变量(这两个命名空间不同)。如果方法中有有变量与类的局部变量同名,那么方法中的局部变量将会屏蔽类中的局部变量即类中的局部变量不再起作用
     
  • 相关阅读:
    node爬取html乱码
    mysql字段有中英文,数字按照升序/降序 排序
    解决git反复输入密码的问题
    vue在jsx中使用for循环
    vscode插件篇
    table无法控制宽度
    console输出彩色字体
    原生js实现vue组件功能
    ES6中的proxy
    面向对象编程
  • 原文地址:https://www.cnblogs.com/yaoze2018/p/11311917.html
Copyright © 2020-2023  润新知