Selenium是一个伞形项目,封装了各种工具和库,可实现Web浏览器自动化。Selenium专门为W3C WebDriver规范提供了一个基础设施 - 一个与所有主要Web浏览器兼容的平台和语言中立的编码接口。
该项目是由志愿者贡献者实现的,他们慷慨地捐赠了数千小时的代码开发和维护。
selenium 的源代码是在Apache 2.0许可证下提供的。
叙述性文档:
接口文档:
请在提交拉取请求之前阅读 CONTRIBUTING.md。
.bazelversion
java和(确保使用 JDK 中的可执行文件,而不是 JRE)。
jar
$PATH
java
javac
python
PATH
ruby
PATH
pip install tox
xcode-select --install
build --host_platform=//:rosetta
.bazelrc.local
BAZEL_VS环境变量应指向构建工具的位置,例如
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
BAZEL_VC环境变量应指向命令行工具的位置,例如
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC
BAZEL_VC_FULL_VERSION环境变量应包含已安装的命令行工具的版本,例如
14.27.29110
C:\tools\msys65\usr\bin
PATH
如果计划编译 IE 驱动程序,则还需要:
该版本可在任何平台上使用,但如果你不是在 Windows 上进行构建,则将以静默方式跳过 IE 的测试。
GitPod 提供了一个随时可用的开发环境。
要配置和使用本地计算机,请继续阅读。
巴泽尔是由谷歌的优秀人士建造的。Bazel管理依赖关系下载,生成Selenium二进制文件,执行测试,并相当快速地完成所有操作。
下面提供了有关运行Bazel的更详细说明,但是如果你可以成功地构建java和javascript文件夹而不会出错,那么你应该确信系统上有正确的二进制文件。
确保你已安装 Firefox,并在 .
你可能需要不时更新它。
$PATH
要从源代码构建最常用的Selenium模块,请从根项目文件夹执行以下命令:
bazel build java/...
如果你想测试,你可以运行,那么你可以通过运行以下命令来做到这一点
bazel test //java/... --test_size_filters=small,medium,large --test_tag_filters=<browser>
这个论点需要小,中,大。小类似于单元测试,中类似于集成测试,大类似于端到端测试。
test_size_filters
允许我们传入浏览器名称和一些可以在代码库中找到的不同标签。
test_tag_filters
要构建网格部署 jar,请运行以下命令:
bazel build grid
日志将显示输出 jar 所在的位置。
如果你想构建所有的 JavaScript 代码,你可以运行:
bazel build javascript/...
要构建 NodeJS 绑定,你需要运行:
bazel build //javascript/node/selenium-webdriver
运行测试运行:
bazel test //javascript/node/selenium-webdriver:tests
你可以使用浏览器的名称传入环境变量。
SELENIUM_BROWSER
要发布到 NPM 运行:
bazel run //javascript/node/selenium-webdriver:selenium-webdriver.publish
如果要生成 python 绑定,请运行:
bazel build //py:selenium
运行测试运行:
bazel test //py:test-<browsername>
如果添加它,它将下载浏览器和驱动程序供你使用。
--//common:pin_browsers
要本地安装运行:
bazel build //py:selenium-wheel
pip install bazel-bin/py/selenium-*.whl
发布运行:
bazel build //py:selenium-wheel
twine upload bazel-bin/py/selenium-*.whl
要生成 Ruby 代码,请运行:
bazel build //rb/...
要生成 .NET 代码,请运行:
bazel build //dotnet/...
也
bazel build //dotnet/test/common:chrome
巴泽尔文件称为 BUILD.bazel,模块的构建顺序由构建系统决定。如果要生成单个模块(假设以前已生成所有依赖模块),请尝试以下操作:
bazel test javascript/atoms:test
在这种情况下,是模块目录,是该目录文件中的目标。
javascript/atoms
test
BUILD.bazel
当你在日志中看到构建目标滚动过去时,你可能希望单独运行它们。
bazel创建一个顶级目录组,每个目录上都有前缀。
bazel-
要从源代码构建大量 Selenium 二进制文件,请从根文件夹运行以下命令:
bazel build java/... javascript/...
若要在项目的特定区域中运行测试,请使用“test”命令,后跟文件夹或目标。测试被标记为“小”,“中”或“大”,可以使用以下选项进行过滤:
--test_size_filters
bazel test --test_size_filters=small,medium java/...
Bazel 的“test”命令将运行包中的所有测试,包括集成测试。预计 会启动浏览器并消耗大量时间和资源。
test java/...
要将固定浏览器的版本提升到其最新的稳定版本,请执行以下操作:
bazel run scripts:pinned_browsers > temp.bzl && mv temp.bzl common/repositories.bzl
该团队的大多数成员都使用智能IDEA或VS。用于日常编辑的代码。如果你使用的是IntelliJ,那么我们强烈建议你安装Bazel IJ插件,该插件记录在其自己的网站上。
如果你确实使用 IntelliJ 和 Bazel 插件,则在脚本/ij.bazelproject 的树中签入了一个项目视图,这将使启动更容易,并且编辑代码:)
代码库通常围绕用于编写组件的语言进行分段。 selenium 广泛使用 JavaScript,所以让我们从这里开始。首先,启动开发服务器:
bazel run debug-server
现在,导航到 http://localhost:2310/javascript。你将找到所显示目录的内容。我们使用闭包库来开发大部分 JavaScript,所以现在导航到 http://localhost:2310/javascript/atoms/test。
javascript/
此目录中的测试是名称以 结尾的普通 HTML 文件。单击一个以加载页面并运行测试。
_test.html
go
更一般,但基本的帮助...
go
./go --help
go是围绕 Rake 的包装器,因此你可以使用标准命令(如)获取有关可用目标的详细信息。
rake -T
selenium 不是用梅文建造的。它是用 构建的,尽管如上所述调用了它,因此你不必对此了解太多。
bazel
go
也就是说,可以相对快速地构建 selenium 片供Maven使用。只有当你正在针对你的应用程序测试Selenium开发的尖端技术(我们欢迎它)时,你才会真正想要这样做。这是构建和部署到本地专家存储库()的最快方法,同时跳过Selenium自己的测试。
~/.m2/repository
./go maven-install
专家罐现在应该在你当地的.
~/.m2/repository
Java 依赖项的坐标(组 Id:工件 Id:版本)在文件 maven_deps.bzl 中定义。修改这些依赖项的过程如下:
bazel run @maven//:outdated
修改maven_deps.例如,我们可以在前面的步骤中碰到给定工件的版本。
列宾依赖关系。需要此过程来更新文件 maven_install.json,该文件用于管理 Maven 依赖项树(有关更多详细信息,请参阅rules_jvm_external)。执行此步骤的命令如下:
REPIN=1 bazel run @unpinned_maven//:pin
为了运行浏览器测试,你首先需要安装特定于浏览器的驱动程序,例如壁虎驱动程序
,铬驱动程序
或边缘驱动程序
。这些需要在你的.
PATH
默认情况下,Bazel 会在当前 X 服务器 UI 中运行这些测试。如果你愿意,也可以在虚拟或嵌套的 X 服务器中运行它们。
Xvfb :99
Xnest :99
DISPLAY=:99 jwm
bazel test --test_env=DISPLAY=:99 //java/... --test_tag_filters=chrome
在虚拟 X 服务器中运行测试的一种简单方法是使用 Bazel 的功能:
--run_under
bazel test --run_under="xvfb-run -a" //java/... --test_tag_filters=chrome
如果你发现很难使用 bazel 设置开发环境,并且你有权访问 Docker,那么你可以从开发映像目录中的 Docker 文件中构建适合构建和测试 Selenium 的 Docker 映像。
巴泽利斯克是巴泽尔的Mac友好型发射器。若要安装,请按照下列步骤操作:
brew tap bazelbuild/tap && \
brew uninstall bazel; \
brew install bazelbuild/tap/bazelisk
如果你收到提及 Xcode 的错误,则需要安装命令行工具。
适用于 Mac 的 Bazel 需要一些额外的步骤才能正确配置。首先:使用巴泽尔斯克项目(由菲尔沃提供),这是巴泽尔的纯戈兰实现。要安装 Bazelisk,请首先验证你的 Xcode 是否将进行协作:执行以下命令:
xcode-select -p
如果值为 ,则可以继续安装巴泽利什克。但是,如果返回值为 ,则需要将 Xcode 系统重定向到正确的值。
/Applications/Xcode.app/Contents/Developer/
/Library/Developer/CommandLineTools/
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/ sudo xcodebuild -license
第一个命令将提示你输入密码。第二步要求你阅读新的Xcode许可证,然后通过键入“同意”来接受它。
(感谢此线程执行这些步骤)