• 看到这个问题,第一个想到了sure,蛋疼的是,好像没有适合你这个场景的assert API。不过推荐你可以看下哈。

    sure github

  • json数据比较大,可以考虑存在文件中,再发送。参考代码

    files = {'upload_file': open('file.json','rb')}
    
    r = requests.post(url, files=files, data=values)
    

    或者

    借助于第三方requests 插件

    import requests
    from requests_toolbelt.multipart import encoder
    
    session = requests.Session()
    with open('my_file.csv', 'rb') as f:
        form = encoder.MultipartEncoder({
            "documents": ("my_file.csv", f, "application/octet-stream"),
            "composite": "NONE",
        })
        headers = {"Prefer": "respond-async", "Content-Type": form.content_type}
        resp = session.post(url, headers=headers, data=form)
    

    以上没有试验,你可以自己试试看噢。

    参考链接

  • hi,@yuweixx

    好像没有直接的API用于部分截图。一般是借助于第三方的工具。例如PIL

    参考方法:

    from selenium import webdriver
    from PIL import Image
    
    fox = webdriver.Firefox()
    fox.get('http://stackoverflow.com/')
    
    # now that we have the preliminary stuff out of the way time to get that image :D
    element = fox.find_element_by_id('hlogo') # find part of the page you want image of
    location = element.location
    size = element.size
    fox.save_screenshot('screenshot.png') # saves screenshot of entire page
    fox.quit()
    
    im = Image.open('screenshot.png') # uses PIL library to open image in memory
    
    left = location['x']
    top = location['y']
    right = location['x'] + size['width']
    bottom = location['y'] + size['height']
    
    
    im = im.crop((left, top, right, bottom)) # defines crop points
    im.save('screenshot.png') # saves new cropped image
    

    参考链接

  • @chestnut 因为screenshot 装饰器并不需要被装饰的函数有返回值传递给他。

    都有return element是因为本身装饰的函数find_element需要return element。

    Python 装饰器本身的作用就是在被包装的函数前or后or前后做一个前置后置的处理动作。

    • 简单一句话就是highlight 需要被装饰的函数有返回值,而screenshot 不需要。
    • 你最后看到都有return element 是 因为本身被装饰的find_element 方法需要。
    • 可以多了解下装饰器,这样更容易使用。

    你觉得不方便,是因为test_2 函数中并没有额外封装的find_element 方法。

    如果统一封装定位的方法,然后再装饰使用,那之后,所有的定位元素高亮就很方便了。

  • @Allen_ Python 。你说的支持是什么意思啊?是直接用在java里边嘛?还是借鉴Python 的这个写法?我想应该是后者把?不可以直接用在java中的噢,但是你可以使用java语言实现。我对java不熟悉,你可以google 下。

  • @chestnut

    你上面使用的highlight 装饰器需要被装饰的函数return一个有效的element参数。你的test_2函数并没有return 有效值。

    建议你可以用最下面的highlight方法,定位到元素之后返回该元素,然后把定位到element 传给highlight 函数,就可以高亮了。

  • @xlth1947 不客气😀

  • @lbxoqy 不客气.😀

  • @lose 😊

    @seveniruby 谢谢思寒加精。✨

    • 在中文前面加个
    'name':u'先生',
    

    试一下。

    可以使用fiddler 抓包下你post 的数据,查看下是否正确。Inspectors→webForms→bodydata

0x7C00.