【selenium实战1作业】企业微信登录实战

  • 将课上教的两种自动化登录的方法写出来(写注释,尤其是cookie的部分)
  • 提交代码块即可

作业-2020-05-21

  • 将课上教的两种自动化登录的方法写出来(写注释,尤其是cookie的部分)
  • 提交代码块即可

方法1–复用浏览器

前置条件1:关闭所有google浏览器

前置条件2:找到Chrome的启动路径

右键点击Google浏览器图标–>点击属性–>点击快捷方式–>复制目标里面\chrome.exe前的所有内容

前置条件3:配置环境变量(PATH)

前置条件4:在cmd中执行chrome --remote-debugging-port=9222(执行成功的结果是打开google浏览器)

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class TestLogin:
    def setup(self):
        # 1.实例化Options类
        option = Options()
        # 2.将url"localhost:9222"赋值给类中的属性debugger_address
        option.debugger_address = "localhost:9222"
        # 3.使用webdriverd的Chrome方法打开Google浏览器,并打开传入参数中的url
        self.driver = webdriver.Chrome(options=option)
        # 4.浏览器窗口最大化
        self.driver.maximize_window()
    def test_login(self):
        # 5.打开企业微信的url
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
    def teardown(self):
        # 6.退出浏览器并释放资源
        self.driver.quit()

方法2–利用cookie

from selenium import webdriver
import time,json


class TestLogin:
    def setup(self):
        # 1.使用webdriver的Chrome方法打开google浏览器
        self.driver = webdriver.Chrome()
        # 2.最大化浏览器窗口
        self.driver.maximize_window()
    '''
    *获取cookie
    *参数
        driver: 浏览器驱动
    '''
    def get_cookie(self):
        # 3.打开企业微信url
        self.driver.get("https://work.weixin.qq.com/")
        # 4.等待10秒进行扫码登录的操作
        time.sleep(10)
        # 5.使用get_cookies方法获取当前窗口中的cookies,并存入变量cookie。获取到的cookie数据类型为list
        cookie = self.driver.get_cookies()
        # 6.将获取到的cookies存入json文件中
        with open("cookie.json", "w") as f:
            json.dump(obj=cookie, fp=f)

    def test_set_cookie(self):
        self.get_cookie()
        # 7.读取文件中的cookies
        with open("cookie.json","rb") as f:
            cookies=json.load(f)
        # 8.获取cookies中的cookie
        for cookie in cookies:
            # 判断cookie的key是否为expirt
            if "expiry" in cookie:
                # 删除字典中的expiry键值
                cookie.pop("expiry")
            # 添加一个cookie
            self.driver.add_cookie(cookie)
        time.sleep(1)
        # 9.打开企业微信首页的url
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
        time.sleep(2)
    def teardown(self):
        # 10.退出浏览器并释放资源
        self.driver.quit()

方法2里面的代码块执行结果是正常的。然后我又用下面的代码块执行时,出现了报错,没法用已经获取的cookies.json自动登录。下面这个代码块里就是把获取cookie的步骤去掉了。

from selenium import webdriver
import time,json


class TestLogin:
    def setup(self):
        # 1.使用webdriver的Chrome方法打开google浏览器
        self.driver = webdriver.Chrome()
        # 2.最大化浏览器窗口
        self.driver.maximize_window()

    def test_set_cookie(self):
        # 7.读取文件中的cookies
        with open("cookie.json", "rb") as f:
            cookies = json.load(f)
        # 8.获取cookies中的cookie
        for cookie in cookies:
            # 判断cookie的key是否为expirt
            if "expiry" in cookie:
                # 删除字典中的expiry键值
                cookie.pop("expiry")
            # 添加一个cookie
            self.driver.add_cookie(cookie)
        time.sleep(2)
        # 9.打开企业微信首页的url
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
        time.sleep(2)
    def teardown(self):
        # 10.退出浏览器并释放资源
        self.driver.quit()

错误信息

中间应该是又扫码登录了,cookie一天有效期的前提是扫了一次码之后就一直复用。中间不要再次用同一个账号扫码这样子。如果存了cookie之后又扫码cookie是会失效的。看报错应该也是这个原因和代码没有什么关系

作业1 – 复用已有浏览器

import selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By


class TestLogin: #定义一个TestLogin类

    def setup(self): #定义一个setup,放一些准备的工作
        op = Options() #实例化Options类
        op.debugger_address="localhost:9222/" #使用Options类中的属性debugger_address,并赋值
        self.driver = webdriver.Chrome(options=op) #将chrome实例化并赋值给driver
        self.driver.maximize_window() #窗口最大化
        self.driver.implicitly_wait(3) #隐式等待设置3秒

    def teardown(self): #资源回收
        self.driver.quit() #退出当前浏览器

    def test_login(self):
        # 打开企业微信页面
        self.driver.get("https://work.weixin.qq.com/") 
        # 使用xpath定位“企业登录”按钮并点击
        self.driver.find_element(By.XPATH,'//*[@class="index_top_operation_loginBtn"]').click() 

作业2 - cookie登录

import os

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


class TestCookie: #定义一个TestCookie类

    def setup(self): #定义一个setup,放一些准备的工作
        self.driver = webdriver.Chrome() #实例化driver
        self.driver.maximize_window() #窗口最大化
        self.driver.implicitly_wait(3) #隐式等待设置3秒
        self.driver.get("https://work.weixin.qq.com") #打开url
        
    def teardown(self):
        self.driver.quit()

    def test_get_cookie(self):
        #self.driver.get("https://work.weixin.qq.com")
        time.sleep(10)
        cookie = self.driver.get_cookies()
        with open("cookie.json","w") as f:
            # cookie存入json文件
            json.dump(obj=cookie,fp=f)

    def test_cookie_login(self):
        time.sleep(10)
        cookies =json.load(open("./cookie.json"))
        #循环cookie列表,将所有cookie添加到浏览器中
        for cookie in cookies:
            if "expiry" in cookie: #找到并删除cookie中的“expiry”
                cookie.pop("expiry")
            self.driver.add_cookie(cookie)
        time.sleep(2)

        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
        time.sleep(2)
        self.driver.find_element(By.CSS_SELECTOR,".index_service_cnt_itemWrap:nth-child(2)").click()

        dir = os.path.dirname(__file__) #获取当前文件的绝对路径

        #上传文件,上传文件可以使用send_keys,前提元素的标签必须未input
        #send_keys里面放的文件,必须是绝对路径,绝对路径是shell中pwd出来的路径
        #dir="/d/AutoTrain_Pro/test_auto_login"
        time.sleep(5)
        self.driver.find_element(By.ID,"js_upload_file_input").send_keys(dir+"/data.xlsx")
        f_name = self.driver.find_element_by_id("upload_file_name").text
        assert f_name=="data.xlsx"

        self.driver.find_element(By.XPATH,'//*[@id="submit_csv"]').click()


你在这里加一个self.driver.get(“https://work.weixin.qq.com/”),就好啦.我个人的理解是,不打开任何网页没地方加cookie.不知道我的理解对不对,反正加了就好了,你试试

1 Like

刚刚在群里 游子同学和你犯了一样的问题。需要在setup 里面打开网页

方法1:复用浏览器

from selenium import webdriver
from selenium.webdriver.chrome.options import Options


class Test_Auto_Login:
    '''
    方法1:
    通过debugging模式
    复用浏览器:1.退出当前所有谷歌浏览器
               2.配置环境变量
               3.启动命令 windows: chrome --remote-debugging-port=9222
               4.访问localhost
    弊端:
        1.不是真正的自动化,需要提前配置
    '''

    def test_debug_login(self):
        option = Options()
        option.debugger_address = "localhost:9222"
        driver = webdriver.Chrome(options=option)
        driver.get('https://work.weixin.qq.com/wework_admin/frame')

方法二:用cookie登录

from selenium import webdriver
import pytest
import time
import json


class Test_cookie_login:
    def setup(self):
        # 初始化driver
        self.driver = webdriver.Chrome()
        # 配置常等待时间
        self.driver.implicitly_wait(5)
        self.driver.maximize_window()


    def get_cookies(self):
        time.sleep(5)
        cookie = self.driver.get_cookies()
        with open("cookie.json", "w") as f:
            # 将cookie存入一个json文件中
            json.dump(obj=cookie, fp=f)

    def test_set_cookie(self):
        self.driver.get("https://work.weixin.qq.com/")
        # 生成cookie文件
        #self.get_cookies()
        # 获取cookies
        cookies = json.load(open("./cookie.json"))
        for cookie in cookies:
            if "expiry" in cookie:
                cookie.pop("expiry")
            self.driver.add_cookie(cookie)
        time.sleep(2)

        # 打开网址
        #self.driver.get("https://work.weixin.qq.com/wework_admin/frame")


if __name__ == '__main__':
    pytest.main()

谢谢游子同学 :+1:

复用已有浏览器

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

'''
复用已有浏览器
1、需要退出当前所有的谷歌浏览器
2、找到chrome的启动路径(下一页ppt)
3、配置环境变量(下一页ppt)
4、启动命令windows:chrome --remote-debugging-port=9222
    启动命令mac:Google\ Chrome --remote-debugging-port=9222
5、访问http://localhost:9222/
'''
class TestLogin():
    def test_debug_login(self):
        #1、实例化Options()
        option = Options()
        #2、给debugger_address属性赋值
        option.debugger_address = "localhost:9222"
        #3、使用webdriver.Chrome方法打开浏览器,并传入url地址
        driver = webdriver.Chrome(options = option)
        #4、打开指定网页
        driver.get("https://work.weixin.qq.com/")

利用cookie

import json
import os
import time

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


class TestCookie():
    def setup(self):
        #用webdriver.Chrome()方法,打开google浏览器
        self.driver = webdriver.Chrome()
        self.driver.get("https://work.weixin.qq.com/")      #打开指定网页

    # def teardown(self):
    #     self.driver.quit()

    def get_cookie(self):
        time.sleep(10)      #等待10s,进行扫码登录操作,以便获取登录cookie
        cookie = self.driver.get_cookies()      # 获取cookie
        with open("CookieOne.json","w") as f:   #打开json文件,并给定write权限
            json.dump(obj = cookie,fp = f)      #将cookie信息写入到json文件

    def test_cookie_login(self):
        cookies = json.load(open("./CookieOne.json"))
        for cookie in cookies:      #循环获取cookie列表,将cookie信息添加到浏览器中
            self.driver.add_cookie(cookie)      #只添加一个cookie
        time.sleep(2)
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")    #跳转到通讯录页面
        time.sleep(2)
        #查找导入通讯录按钮
        self.driver.find_element(By.CSS_SELECTOR,".index_service_cnt_itemWrap:nth-child(2)").click()
        # file当前文件绝对路径,dir当前文件夹绝对路径
        dir = os.path.dirname(__file__)
        time.sleep(10)
        #使用send_keys上传文件,元素必须是<input>标签
        #send_keys里面的文件路径:绝对路径
        self.driver.find_element_by_id("js_upload_file_input").send_keys(dir+"./CookieOneData.xlsx")

        file_name = self.driver.find_element_by_id("upload_file_name").text
        #断言上传文件是否正确
        assert file_name == "CookieOneData.xlsx"

if __name__ == "__main__":
    pytest.main()

登录方式一:复用已有浏览器

from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

class TestLoginDebug:
    def setup(self):
        option = Options()  # 实例化Options类
        option.debugger_address = "localhost:9222"  # 调用debugger_address方法,并传入调式地址为本地启动的一个服务,服务地址为localhost:9222
        self.driver = webdriver.Chrome(options=option)  # 实例化Chrome类,并传入option
        self.driver.get("https://work.weixin.qq.com/")  # 打开网页
        self.driver.implicitly_wait(3)  # 隐式等待

    def teardown(self):
        # self.driver.quit()  # 关闭网页
        pass

    def test_debug_login(self):
        self.driver.find_element(By.CSS_SELECTOR, '.index_top_operation a:nth-child(1)').click()  # 获取企业登录按钮元素,并点击
        sleep(2)  # 加一个强制等待,是为了看清中间过程
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame#contacts")  # 这里直接复用上面的浏览器,跳过扫描的过程,直接进入到指定的网页

登录方式二:使用cookie登录

import json
from time import sleep
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By


class TestLoginCookie:
    def setup(self):
        self.driver = webdriver.Chrome()  # 实例化Chrome类
        self.driver.implicitly_wait(3)  # 隐式等待
        self.driver.get("https://work.weixin.qq.com/")  # 打开网页

    def teardown(self):
        self.driver.quit()  # 关闭网页
        # pass

    # 定义get_cookie方法用于获取cookie
    def get_cookie(self):
        self.driver.find_element(By.CSS_SELECTOR, '.index_top_operation a:nth-child(1)').click()  # 获取企业登录按钮元素,并点击
        sleep(5)  # 强制等待5秒,趁此时间,扫描登录;最后等程序自动执行完,这样就获取到了登录的cookie
        cookie = self.driver.get_cookies()  # 获取当前页面的cookies,并赋值给cookie
        # print(cookie)
        with open("data.json", "w") as f:  # 新建data.json文件,重命名为f;用于存储获取到的cookie——持久化的存储cookie就是用文件存储
            json.dump(obj=cookie, fp=f)  # 把获取到的cookie存入到data.json文件中

    # 定义test_cookie_login方法,用于测试是否能成功使用获取到的cookie
    def test_cookie_login(self):
        cookies = json.load(open("./data.json"))  # 读取存储cookie的文件
        for cookie in cookies:  # 遍历cookies列表,把所有cookie添加到浏览器中
            if "expiry" in cookie:  # 如果expiry在cookie中,主要是解决invalid argument: invalid 'expiry'这个问题
                cookie.pop("expiry")  # 就把expiry删除
            self.driver.add_cookie(cookie)  # 每次只添加一个cookie
        sleep(2)  # 强制等待,用于等cookie全部加到浏览器中
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame#contacts")  # 打开网页,检测是否成功使用cookie
        sleep(2)

if __name__ == '__main__':
    pytest.main()
  • 方法一:复用浏览器
import pytest
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class TestLogin():
    def test_debug_login(self):
        option = Options() #实例化Options类,加载用户参数配置
        option.debugger_address = "localhost:9222" #获取本地调试器地址
        self.driver = webdriver.Chrome(options=option) #将配置文件加载进webdriver
        self.driver.get('https://work.weixin.qq.com/wework_admin/frame#contacts') #打开企业微信链接

  • 方法二:cookie
import pytest
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from time import sleep
import json
class TestLogin():
    #验证浏览器复用
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get('https://work.weixin.qq.com/')
    def test_cookie(self):
        sleep(10)#在强制等待过程中去扫码登录
        cookie = self.driver.get_cookies() #将登录后浏览器的cookie取出来
        with open("cookie.json","w") as f:  #将取出的cookie放入json文件中
            json.dump(obj=cookie,fp=f)
    def test_cookie_login(self):
        cookies = json.load(open("./cookie.json"))  #将json文件中的cookie读取出来
        for cook in cookies:   #将每个cookie循环写入新的浏览器中
            if "expiry" in cook:  #遇到无效的cookie就删除
                cook.pop("expiry")
            self.driver.add_cookie(cook)
            sleep(5)

方法1–复用浏览器

"""
1.需要退出当前所有的谷歌浏览器
2.找到chrome的启动路径
3.配置环境变量,检验配置是否成功,在cmd输入命令windows: chrome, mac: Google\ Chrome
4.启动命令windows:chrome --remote-debugging-port=9222
启动命令mac:Google\ Chrome --remote-debugging-port=9222
5.检查复用浏览器是否启动成功:访问http://localhost:9222/
"""

# 引入Options和webdriver类
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

# 声明一个TestLogin类
class TestLogin:
    # 定义一个setup方法,在执行测试用例之前被调用
    def setup(self):
        # 声明Options的实例
        option = Options()
        # 给debugger_address属性赋值
        option.debugger_address = "localhost:9222"
        # 实例化 Chrome 赋值给driver, 把option的变量传入
        self.driver = webdriver.Chrome(options=option)
        # 打开企业微信网址
        self.driver.get("https://work.weixin.qq.com/")
        # 设置隐式等待
        self.driver.implicitly_wait(5)
        # 点击企业登录
        self.driver.find_element(By.CSS_SELECTOR, ".index_top_operation a:nth-child(1)").click()
        # 设置等待时间,扫二维码
        sleep(10)
        # 打开百度网址
        self.driver.get("https://www.baidu.com/")

    # 定义一个测试用例
    def test_login_debug(self):
        # 打开企业微信中的指定网址,无需再次扫码登陆
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame#contacts")

方法2–利用cookie

# 引入相关类
from selenium import webdriver
from time import sleep
import json
from selenium.webdriver.common.by import By

# 声明一个TestCookie类
class TestCookie:
    # 定义一个setup方法,在执行测试用例之前被调用
    def setup(self):
        # 实例化 Chrome 赋值给driver
        self.driver = webdriver.Chrome()
        # 打开企业微信的网址
        self.driver.get("https://work.weixin.qq.com/")
        # 设置隐式等待
        self.driver.implicitly_wait(5)

    # 定义一个teardown方法,在执行测试用例之后被调用
    def teardown(self):
        # 退出浏览器
        self.driver.quit()

    # 定义一个方法获取cookie
    def test_get_cookie(self):
        # 点击企业登录
        self.driver.find_element(By.CSS_SELECTOR, ".index_top_operation a:nth-child(1)").click()
        # 等待10s,等待扫描二维码
        sleep(10)
        # 获取当前session下的cookie,并赋值给cookie
        cookie = self.driver.get_cookies()
        # 打开json文件,加入写权限
        with open("cookie.json","w") as f:
            # 将cookie写入json文件
            json.dump(obj=cookie, fp=f)

    # 定义一个方法读取cookie
    def test_cookie_login(self):
        # 读取存放cookie的json文件
        cookies = json.load(open("./cookie.json"))
        # 循环cookies列表,将所有cookie添加到浏览器中
        for cookie in cookies:
            # 将无效的"expiry"删除
            if "expiry" in cookie:
                cookie.pop("expiry")
            self.driver.add_cookie(cookie)
        # 强制等待,等cookie全部加到浏览器中
        sleep(3)
        # 打开企业微信中的指定网址,无需再次扫码登陆
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame#contacts")

1、复用浏览器

from selenium import webdriver  # 导入webdriver
#  小写的chrome
from selenium.webdriver.chrome.options import Options

class TestLogin:  # 定义一个类
    def test_debug_login(self):  # 定义一个方法
        option = Options()  # 实例化Options类
        option.debugger_address = "localhost:9222"  # 调用debugger_address,将url"localhost:9222"赋值给类中的属性debugger_address
        driver = webdriver.Chrome(options=option)  # 浏览器进行实例化,使用webdriverd的Chrome方法打开Google浏览器,并打开传入参数中的url
        driver.get("https://work.weixin.qq.com/wework_admin/frame")  # 打开浏览器中的企业微信地址

2、利用cookie

import os

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


class TestCookie:  # 定义一个类
    def setup(self):  # 进行初始化
        self.driver = webdriver.Chrome()  # 浏览器进行实例化,使用webdriverd的Chrome方法打开Google浏览器
        self.driver.get("https://work.weixin.qq.com/")  # 获取企业微信的url

    def test_get_cookie(self):  # 定义一个方法
        """
        获取cookie
        :return:
        """
        time.sleep(20)  # 直接等待20秒,进行扫码登录
        cookie = self.driver.get_cookies()  # 获取浏览器的cookie
        with open("cookie.json", "w") as f:
            #  将获取到的cookie存入到一个json文件中
            json.dump(obj=cookie, fp=f)

    def test_cookie_login(self):
        # 获取cookie.json文件的内容
        cookies = json.load(open("./cookie.json"))
        # 循环cookies列表,将所有cookies添加到浏览器中
        for cookie in cookies:
            # 遍历列表发现有expiry,直接移除
            if "expiry" in cookie:
                cookie.pop("expiry")  # 传入key值
            # 添加一个cookies
            self.driver.add_cookie(cookie)
        time.sleep(2)  # 直接等待2秒
        # 获取企业微信通讯录的url
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame#contacts")
        time.sleep(2)  # 直接等待2秒
        # 定位到导入通讯录按钮并点击
        self.driver.find_element(By.CSS_SELECTOR, ".index_service_cnt_itemWrap:nth-child(2)").click()
        time.sleep(2)  # 直接等待2秒
        # 获取上传ID并点击
        # dir 获取的就是当前文件的绝对路径
        dir = os.path.dirname(__file__)
        # 上传文件,上传文件可以使用send_keys。前提元素的标签必须为input。
        # send_keys里面放的文件,必须是绝对路径
        time.sleep(2)  # 直接等待2秒
        #  获取上传文件按钮位置并进行导入
        self.driver.find_element(By.ID, "js_upload_file_input").send_keys(dir+"/data1.xls")
        # 取出系统内部已导入的文件的名称
        ele_name = self.driver.find_element(By.ID, "upload_file_name").text
        # 断言上传文件的名称
        assert ele_name == "data1.xls"

作业

1.复用浏览器

# ! /usr/bin/env python
# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options


# 复用浏览器
class TestLogin:
    # 复用浏览器
    def test_debug_login(self):
        # 实例化 Options(使用debug模式)
        option = Options()
        # 输入debug模式应用地址
        option.debugger_address = "localhost:9222"
        # 传入option,让Chrome进入debug模式
        driver = webdriver.Chrome(options=option)
        # 最大化窗口
        driver.maximize_window()
        # 打开企业微信已登录页
        driver.get("https://work.weixin.qq.com/wework_admin/frame")

2.通过cookie实现不扫码登录

# ! /usr/bin/env python
# -*- coding:utf-8 -*-
import json
import os
from time import sleep

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

# 使用cookie进行登录
class TestCookie:
    # 初始化
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.implicitly_wait(3)
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")

    # 获取cookie
    def test_get_cookie(self):
        """
        获取cookie
        :return:
        """
        sleep(10)
        # 通过get_cookies方法获取cookie(1个)
        cookie = self.driver.get_cookies()
        # 将获取到的cookie写入json文件中,以备调用(因为cookie是个列表)
        with open(".pytest_cache/cookie.json", "w") as f:
            json.dump(obj=cookie, fp=f)

    # 使用cookie进行登录
    def test_cookie_login(self):
        # 导入含有cookie的json文件
        cookies = json.load(open(".pytest_cache/cookie.json"))
        # 循环cookies列表,将所有cookie添加到浏览器中(植入)
        for cookie in cookies:
            # 删除expiry
            if "expiry" in cookie:
                # 删除expiry
                cookie.pop("expiry")
            # 植入cookie
            self.driver.add_cookie(cookie)
        # 刷新页面(植入cookie后已经登录成功)
        self.driver.refresh()
        # 登录后进入主页,点击添”导入通讯录“,跳转导入页
        self.driver.find_element(By.CSS_SELECTOR,
                                 "#_hmt_click > div.index_colLeft > div.index_service > div.index_service_cnt.js_service_list > a:nth-child(2) > div > span.index_service_cnt_item_title").click()
        # 获取当前路径
        dir = os.path.dirname(__file__)
        # 强制等待2s
        sleep(2)
        # 点击“上传文件”,传入路径文件
        self.driver.find_element(By.ID, "js_upload_file_input").send_keys(dir + "/晨午检版本更新测试用例.xlsx")
        # 获取被上传文件的名称
        ele_name = self.driver.find_element(By.ID, "upload_file_name").text
        # 添加断言,验证上传文件是否正确
        assert ele_name == "晨午检版本更新测试用例.xlsx"

if __name__ == '__main__':
    pytest.main("-v", "-s")

关闭