使用 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 实现自动登录使用过程