【发布时间】:2020-12-21 06:22:00
【问题描述】:
标题说明了一切:我想知道在 headless mode 启动 Firefox 时是否可以与 Firefox console 交互。
更一般地说,我会接受某种以编程方式在脚本中访问它的方式。
我的尝试:
到目前为止,我一直在玩 Javascript bindings 到 Selenium 没有成功:
使用 Selenium 中的 -devtools option 启动 Firefox 确实打开了开发工具,但我随后 cannot 发送组合键,将我切换到实际控制台,或者实际上从我的 .js 脚本与打开的开发工具进行交互任何方式的窗口。
编辑
回应下面的第一条评论:this answer 似乎没有帮助。当我将CTRL+SHIFT+k 发送到google.com 的body 标签时,控制台没有打开:
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var firefox = require('selenium-webdriver/firefox');
var inpt = require('selenium-webdriver/lib/input');
var options = new firefox.Options();
var driver = new webdriver.Builder()
.forBrowser('firefox')
.setFirefoxOptions(options)
.build();
(async function(){
await driver.get('https://google.com');
var bdy = await driver.findElement(By.id('gsr'));
await bdy.sendKeys(inpt.Key.CONTROL + inpt.Key.SHIFT + 'k');
})();
这会打开页面 (google.com) 并且没有返回任何错误,但是任何地方都没有控制台。
为了更好的衡量标准:只发送inpt.Key.SHIFT + 'k'确实在 Google 搜索字段中输入大写“K”,所以我知道键被正确引用。
此外,仅发送'k' 会在搜索字段中输入一个小“k”。只有三键组合不起作用。
第二次编辑:
我收回了它:newer answer 确实可以正常工作(我从node 切换到Python)。
【问题讨论】:
-
@Karthik:没那么多……我已经编辑了我的答案。
-
我收回了这一点:它确实有效,谢谢!请参阅上面的第二次编辑。
标签: javascript selenium firefox