Bazel 从哪里获取 Selenium Webdriver 原子?

Where does Bazel gets Selenium Webdriver atoms from?

所以我有一个基于 Selenium 的测试自动化框架(将其用作 .dll)。我想要做的是将 Selenium 添加为一个项目,以便能够通过其代码进行调试。

我看到 WebDriver.csproj 中有一行调用 cmd 作为预构建步骤

<Target Name="PreBuild" BeforeTargets="PreBuildEvent" Condition="'$(OS)' == 'Windows_NT'">
    <Exec Command="call $(ProjectDir)WebDriver.csproj.prebuild.cmd $(ProjectDir)" />
  </Target>

  <Target Name="PreBuildNonWindows" BeforeTargets="PreBuildEvent" Condition="'$(OS)' != 'Windows_NT'">
    <Exec Command="$(ProjectDir)WebDriver.csproj.prebuild.sh $(ProjectDir)" />
  </Target>

此 cmd 运行一些 Bazel 命令

@echo off
if not exist "%1..\..\..\bazel-bin\javascript\webdriver\atoms\get-attribute.js" (
  echo Building getAttribute atom
  pushd "%1..\..\.."
  bazel build //javascript/webdriver/atoms:get-attribute.js
  popd
)

if not exist  "%1..\..\..\bazel-bin\javascript\atoms\fragments\is-displayed.js" (
  echo Building isDisplayed atom
  pushd "%1..\..\.."
  bazel build //javascript/atoms/fragments:is-displayed.js
  popd
)

if not exist  "%1..\..\..\bazel-bin\javascript\atoms\fragments\find-elements.js" (
  echo Building findElements atom
  pushd "%1..\..\.."
  bazel build //javascript/atoms/fragments:find-elements.js
  popd
)

我试图在我的机器(运行 Windows Server 2016)上安装 Bazel,但由于某种原因甚至无法在安装后获得版本。该消息说它与我的 Windows 版本不兼容。 所以我决定在互联网上搜索 Selenium 中使用的所有 javascript 文件。除了几个,我能够找到其中的大多数。 所以我的问题是:Selenium js 原子是否有任何存储或 Bazel 以某种方式自动生成它们?

不知道这是否是最佳解决方案,但我发现

下缺少原子

...\selenium-trunk\rb\lib\selenium\webdriver\atoms\

我需要的只是重命名它们并放置到适当的文件夹中,如下所示:

getAttribute.js=>get-attribute.js=>...\selenium-trunk\bazel-bin\javascript\webdriver\atoms\
isDisplayed.js=>is-displayed.js=>...\selenium-trunk\bazel-bin\javascript\atoms\fragments\
findElements.js=>find-elements.js=>...\selenium-trunk\bazel-bin\javascript\atoms\fragments\ 

路径是 WebDriver.csproj 搜索该文件的地方

<EmbeddedResource Include="$(ProjectDir)../../../bazel-bin/javascript/webdriver/atoms/get-attribute.js">
      <Visible>False</Visible>
      <LogicalName>get-attribute.js</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)../../../bazel-bin/javascript/atoms/fragments/is-displayed.js">
      <Visible>False</Visible>
      <LogicalName>is-displayed.js</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)../../../bazel-bin/javascript/atoms/fragments/find-elements.js">
      <Visible>False</Visible>
      <LogicalName>find-elements.js</LogicalName>
</EmbeddedResource>