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

Automating export Azure Devops pipeline Work Items Revisions using Python Selenium Webdriver

目前我正在使用 Azure Devops Pipeline OData 服务使用以下 link:

导出数据
 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 Library) 来抓取上面提到的 link使用基本身份验证。

除了 selenium 之外,是否还有其他替代解决方案来完成此任务。 由于 selenium web 驱动程序在等待加载大尺寸 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

您可以使用 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 以获取具有正确权限范围的个人访问令牌。