使用 Python Selenium Webdriver 自动导出 Azure Devops 管道工作项修订

Posted

技术标签:

【中文标题】使用 Python Selenium Webdriver 自动导出 Azure Devops 管道工作项修订【英文标题】:Automating export Azure Devops pipeline Work Items Revisions using Python Selenium Webdriver 【发布时间】:2020-07-03 14:36:58 【问题描述】:

目前我正在使用 Azure Devops Pipeline OData 服务通过以下链接导出数据:

 https://<CompanyName>.analytics.visualstudio.com/<ProjectName>/_odata/v2.0/WorkItemRevisions?$apply=filter(CreatedDateSK%20eq%20<Date>%20and%20WorkItemType%20eq%20%27<WorkItemType%27)

我正在使用提取工具 (Talend DI) 自动更改这些参数,并且我正在运行 python 代码(Selenium 库)以使用基本身份验证对上述链接进行网络抓取。

除了硒之外还有其他替代解决方案来完成这项任务。 由于 selenium 网络驱动程序在等待加载大尺寸 oage 时出现超时错误。

try:
        content_element=expected_conditions.visibility_of_element_located((By.XPATH,contentElementID))
        WebDriverWait(driver,15).until(content_element)
        break
    except TimeoutException:
        if(i==14):
                driver.quit()
                raise TimeoutException

【问题讨论】:

【参考方案1】:

您可以使用 Requests HTTP 库来调用 OData 服务。请检查以下代码示例:

import requests
import json
import base64

if __name__ == "__main__":

    pat = 'Personal access token'
    authorization = str(base64.b64encode(bytes(':'+pat, 'ascii')), 'ascii')

    headers = 
    'Content-Type': 'application/json',
    'Authorization': 'Basic '+authorization
           

    url = "https://<CompanyName>.analytics.visualstudio.com/<ProjectName>/_odata/v2.0/WorkItemRevisions?$apply=filter(CreatedDateSK%20eq%20<Date>%20and%20WorkItemType%20eq%20%27<WorkItemType%27)"

    #you can also use below domain dev.azure.com, which is the new domain of azure devops service
    #url = "https://analytics.dev.azure.com/org/proj/_odata/v2.0//WorkItems?`$select=WorkItemId,Title,State&`$expand=Parent(`$select=WorkItemId,Title,State)&`$filter=WorkItemId eq 12"

    response = requests.get(url, headers=headers)

    print(response.content)

请检查here 以获取具有正确权限范围的人员访问令牌。

【讨论】:

以上是关于使用 Python Selenium Webdriver 自动导出 Azure Devops 管道工作项修订的主要内容,如果未能解决你的问题,请参考以下文章

windows7 python3.63使用selenium+webdriver 实现自动登录使用过程

python+selenium自动化软件测试(第16章):基础实战

selenium模块

selenium模块

selenium介绍

Selenium库