gpt4 book ai didi

javascript - 如何将 Google Go 与 Chrome 交互?

转载 作者:数据小太阳 更新时间:2023-10-29 03:24:03 26 4
gpt4 key购买 nike

我正在尝试用 Go 编写 JavaScript 测试套件。

我设想使用 Go 创建单元测试,并针对浏览器中加载的 Web 应用程序运行它们。

为此,我将一个 test JavaScript 对象放入全局命名空间;因此,我可以“ Hook ”到要测试的不同组件。

是否可以在 Chrome 中加载此脚本,并将接口(interface)公开给 test,以便我可以从 Go 访问浏览器内的 JavaScript 函数?

例子:

//JavaScript 函数

// Intentionally, and cautiously, emplace "test" into the global namespace
// In practice I would make this a singleton :^D
test = (typeof test == "undefined") ? {} : test;

// Employ the method invocation pattern to append "test" with function "cheesePrice()"
// ES6 fat arrow function
test.cheesePrice = (type) => {
let p = 0;
switch (type) {
case "cheddar" : { p = 9.99; break; };
case "swiss" : { p = 6.49; break; };
case "gouda" : { p = 7.49; break; };
default : { // throw; }
}
return p;
}

// Example call
test.cheesePrice("swiss"); //-> 6.49

鉴于上述情况,我如何在 Go 脚本中调用 test.cheesePrice() 并接收返回值?像这样的东西(伪代码);

// Imagine here browserHook is an interface into Chrome
// Enabling us to invoke the method above
func getJsCheesePrice(cheeseType string) float32 {
return browserHook.test.getPrice(cheeseType);
}
func main() {
assert.Equal(getJsCheesePrice("cheddar"), 9.99);
}

最佳答案

据我所知,在已编译的 Go 程序中没有办法与 javascript 函数进行交互。但是有一个 Selenium webdriver client for Go here.

请注意,这不一定允许您直接调用 javascript 函数,但会为您提供一个运行 JS 的浏览器的接口(interface)。

关于javascript - 如何将 Google Go 与 Chrome 交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com