我正在编写一个基于 Selenium WebDriver 的自动化 UI 测试解决方案。我需要一种独立于浏览器的方法,可以实现文件下载。
我的方法依赖于 System.Net.WebClient 类,如果存在属性(例如href或src) ,则可以成功从站点下载文件推断文件位置的
但是,当通常保存引用的元素没有指向文件的指针时,我遇到了问题。相反,该元素有一个与 Javascript 单击事件相关联的 CSS 类。单击该元素时,Javascript 会在动态创建的链接上触发window.open操作。
关于如何从我的 C# 代码中成功捕获该文件引用有什么想法吗?
我正在努力将Windows服务VDPROJ迁移到WiX.
我能够使用HEAT将Windows Service项目的输出收集到片段中.目前,为了使我的自定义操作正常工作,我手动将一些生成的GUID从Heat生成的文件更改为主Product.wxs中引用的已知字符串.
我需要在每个构建上以编程方式执行此操作,而不是依赖于手动干预,因为我需要将WiX项目集成到我们的连续构建服务器中.
根据我的研究,我可以在HEAT的输出上使用XSLT转换来实现我的需要,但是我很难让我的XSLT转换工作.
这是生成的片段的一部分,不使用XSLT转换
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
[...]
<Fragment>
<ComponentGroup Id="Windows.Service.Binaries">
<ComponentRef Id="ComponentIdINeedToReplace" />
[...]
</ComponentGroup>
</Fragment>
[...]
<Fragment>
<ComponentGroup Id="CG.WinSvcContent">
<Component Id="ComponentIdINeedToReplace" Directory="TARGETDIR" Guid="{SOMEGUID}">
<File Id="FileIdINeedToReplace" Source="$(var.Windows.Service.TargetDir)\Windows.Service.exe" />
</Component>
[...]
</ComponentGroup>
</Fragment>
[...]
</Wix>
Run Code Online (Sandbox Code Playgroud)
我将HEAT prebuild命令修改为:
"$(WIX)bin\heat.exe" project "$(ProjectDir)\..\Windows.Service\Windows.Service.csproj" -gg -pog Binaries -pog Symbols -pog Content -cg CG.WinSvcContent -directoryid "TARGETDIR" -t "$(ProjectDir)Resources\XsltTransform.xslt" -out "$(ProjectDir)Fragments\Windows.Service.Content.wxs"
Run Code Online (Sandbox Code Playgroud)
并编写了以下XSLT来实现两件事:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable
name="vIdToReplace"
select="//ComponentGroup[@Id='CG.WinSvcContent']/Component/File[contains(@Source,'Windows.Service.exe') and not(contains(@Source,'config'))]/../@Id" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" …Run Code Online (Sandbox Code Playgroud)