使用 ChromeDriver 测试
WebDriver 是一个开源工具,用于跨多个浏览器自动测试 Web 应用程序。它提供导航到网页、用户输入、JavaScript 执行等功能。ChromeDriver 是一个独立的服务器,它为 Chromium 实现 WebDriver 的线协议。ChromeDriver 可用于 Android 上的 Chrome 和桌面上的 Chrome(Mac、Linux、Windows 和 ChromeOS)。
NW.js 提供了一个定制的 ChromeDriver,用于自动测试基于 NW.js 的应用程序。您可以将其与 selenium 等工具一起使用。
入门
以下工作流程使用 selenium-python 来驱动测试。您可以使用任何语言端口来使用 Selenium 与 chromedriver
协同工作。
安装
- 从 NW.js 网站下载 ChromeDriver。它位于 SDK 构建中。
- 解压缩包并将
chromedriver
放置在包含 NW.js 二进制文件的同一目录下:Linux 为nw
,Windows 为nw.exe
,Mac 为node-webkit.app
。 - 在您的项目中安装
selenium-python
pip install selenium
运行
假设您的应用程序显示了一个用于从远程搜索的表单。该页面基本上是这样的
<form action="http://mysearch.com/search" method="GET"> <input type="text" name="q"><input type="submit" value="Submit"> </form>
编写一个 Python 脚本来自动填写搜索框并提交表单
import time from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("nwapp=/path/to/your/app") driver = webdriver.Chrome(executable_path='/path/to/nwjs/chromedriver', chrome_options=chrome_options) time.sleep(5) # Wait 5s to see the web page search_box = driver.find_element_by_name('q') search_box.send_keys('ChromeDriver') search_box.submit() time.sleep(5) # Wait 5s to see the search result driver.quit()
有关 selenium-python
的详细文档,请参阅 http://selenium-python.readthedocs.org/。
对上游 chromedriver 的修改
-
chromedriver 默认情况下已修改为在同一目录中查找 NW 可执行文件。
-
如果您想将非开关参数传递给命令行,则添加了额外的选项
nwargs
。
import time from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("nwapp=/path/to/your/app") chrome_options.add_experimental_option("nwargs", ["arg1", "arg2"]) driver = webdriver.Chrome(executable_path='/path/to/nwjs/chromedriver', chrome_options=chrome_options)