影刀的一些用法

本文介绍了Python中os库的abspath方法用于获取绝对路径,使用urllib.request.urlretrieve下载网页图片,并展示了如何从浏览器获取Cookie。通过xbot库实现自动下载和保存图片,以及获取特定网站的Cookie信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、os 的用法

# 返回的是绝对路径
os.path.abspath(path)

2、获取网页上的图片

from urllib.request import urlretrieve

python3中urllib.request模块提供的urlretrieve()函数。urlretrieve()方法直接将远程数据下载到本地。

urlretrieve(url, filename=None, reporthook=None, data=None)

参数url:下载链接地址
参数filename:指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
参数reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
参数data:指post导服务器的数据,该方法返回一个包含两个元素的(filename, headers) 元组,filename 表示保存到本地的路径,header表示服务器的响应头

import xbot
from xbot import print, sleep
from .import package
from xbot import web
from urllib.request import urlretrieve
def main(args): 
    # upload 上传文件
    # web_object = web.create('https://pan.baidu.com/disk/home?_at_=1626846174575#/all?path=%2F&vmode=list','chrome')
    # web_object.find('百度网盘上传').upload([r'D:\test\111\1.jpg'])

    # download 自动完成点击下载按钮、在文件保存对话框中输入保存文件信息等系列操作
    web_object = xbot.web.create("https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=%CD%BC%C6%AC&fr=ala&ala=1&alatpl=normal&pos=0", "chrome")
    # download_file_name = web_object.find('下载图片').download(r"D:\test\111","图片.jpg",wait_complete=True)
    img_url = web_object.find('下载图片').get_attribute('data-imgurl') # 获取图片
    urlretrieve(img_url, r"D:\111.jpg")
    print(img_url)**

3、获取cookie

import xbot
from xbot import print, sleep
from .import package
from xbot import web

def main(args):
    # browser = web.create("https://www.bilibili.com/",'chrome')
    # url = browser.get_url
    # print(url)

    # title = browser.get_title()
    # print(title)

    # text = browser.get_text()
    # print(text)

    # html = browser.get_html()
    # print(html)
    browser = web.get_active('chrome')
    cookie_list = xbot.web.get_cookies('https://www.taobao.com/', mode='chrome')
    cookie_str = ';'.join([f"{x['name']}={x['value']}" for x in cookie_list])
    print(cookie_str)
    # cookie_list = browser.get_cookies(domain='www.baidu.com')
    print(cookie_list)
    # i = 0
    # for cookie in cookie_list:
    #     print(i)
    #     print(cookie['name'] + '  ' + cookie['value'])
    #     i += 1
    
<think>好的,我现在需要回答用户关于在影刀中使用seldom框架的问题。首先,我要确认自己对这两个工具的了解程度。影刀应该是一个RPA(机器人流程自动化)工具,而seldom是一个基于Python的自动化测试框架,结合了unittest和Selenium。用户可能想知道如何在影刀中集成seldom来进行自动化测试,特别是Web自动化。 首先,我需要回忆一下影刀的功能。影刀主要用于自动化办公任务,比如操作Excel、浏览器、桌面应用等,而seldom则是专门用于测试的框架,支持Selenium,可能用于Web UI自动化测试。用户可能希望将两者结合,利用影刀的RPA能力和seldom的测试功能,提升自动化流程的质量。 接下来,我需要考虑如何在影刀中调用seldom。影刀通常使用自有的脚本语言或者支持Python脚本,所以可能需要通过Python节点来集成。用户可能需要在影刀中编写Python代码,引入seldom库,并执行测试用例。 然后,我需要思考可能的步骤。例如,在影刀中创建一个Python脚本节点,安装seldom库,编写测试用例,然后运行。但要注意影刀的环境是否支持Python第三方库的安装,以及是否有权限或路径问题。 另外,需要确认seldom和影刀的兼容性。比如,seldom依赖的浏览器驱动是否能在影刀的环境中正确配置,比如ChromeDriver或者GeckoDriver。可能需要用户在影刀的环境中预先安装这些驱动,或者指定路径。 可能遇到的问题包括环境配置、库的安装、以及如何将测试结果反馈到影刀的流程中。比如,测试失败时,影刀是否能捕获异常并执行相应的处理步骤,比如发送邮件或记录日志。 还需要给出一个具体的例子,说明如何在影刀中编写一个简单的seldom测试用例,比如打开网页,进行断言,并生成测试报告。同时,要提到seldom的高级功能,比如数据驱动、Fixture、Page Object模式等,如何应用在影刀中,提升测试效率。 最后,要提醒用户注意版本兼容性和错误处理,确保自动化流程的稳定性。可能还需要比较使用seldom和影刀自有的浏览器自动化功能的优缺点,帮助用户做出合适的选择。</think>在影刀(一款RPA工具)中使用seldom(基于Python的自动化测试框架)的整合步骤如下: --- ### 一、核心概念 1. **影刀** - RPA工具,支持通过可视化流程或Python脚本实现自动化操作(如Excel处理、浏览器控制、API调用等)。 2. **seldom** - 基于`unittest`和`Selenium`的测试框架,提供简洁的语法和丰富的断言方法,适合Web自动化测试。 --- ### 二、整合步骤 #### 1. 环境准备 ```python # 影刀中通过Python节点安装seldom pip install seldom # 安装浏览器驱动(如ChromeDriver) # 需确保驱动版本与浏览器匹配 ``` #### 2. 编写测试用例 ```python # 影刀中通过Python脚本节点调用seldom import seldom class BaiduTest(seldom.TestCase): def test_search(self): self.open("https://www.baidu.com") self.type(id_="kw", text="影刀RPA") self.click(id_="su") self.assertTitle("影刀RPA_百度搜索") if __name__ == "__main__": seldom.main() ``` #### 3. 执行与报告 - **运行测试**:在影刀流程中调用Python脚本执行测试。 - **生成报告**:seldom默认生成HTML报告(`reports/`目录),可结合影刀的文件操作节点读取结果。 --- ### 三、应用场景 1. **自动化巡检** - 定时检查Web页面功能是否正常。 2. **数据校验** - 在RPA流程中插入测试步骤,验证网页数据准确性。 3. **异常捕获** - 通过断言失败触发影刀的异常处理逻辑(如发送告警邮件)。 --- ### 四、注意事项 - **浏览器驱动配置** 确保`chromedriver`或`geckodriver`的路径在影刀环境中可访问。 - **依赖管理** 若影刀使用独立Python环境,需通过脚本节点安装seldom及依赖。 - **异步操作处理** 结合`seldom`的显式等待方法(如`self.wait()`)避免因页面加载导致的失败。 --- ### 五、高级用法 1. **数据驱动测试** ```python @seldom.data([ ("case1", "影刀"), ("case2", "seldom") ]) def test_search(self, name, keyword): self.type(id_="kw", text=keyword) # 断言逻辑... ``` 2. **Page Object模式** 封装页面元素提升代码复用性。 3. **集成CI/CD** 通过影刀触发测试任务,并将结果同步至Jenkins等工具。 --- ### 六、常见问题 - **Q**: 影刀中运行时报错`WebDriverException`? **A**: 检查浏览器驱动版本及环境变量配置。 - **Q**: 如何传递参数给测试用例? **A**: 通过影刀变量注入到Python脚本中(如`os.environ`)。 通过结合影刀的流程控制与seldom的测试能力,可实现更健壮的自动化解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值