我如何将VB.net代码中定义的字符串变量的值传递到CefSharp浏览器中,并使用Javascript以其名称进行调用?

问题描述 投票:0回答:1

[CefSharp的首次用户。我正在尝试将其与vb.net结合使用以自动执行网站中的某些任务。

我创建了一个ChromiumWebBrowser,并将其指向具有2个输入字段用户名和密码的网站。我设法使用javascript用2个相应的字符串填充2个输入文件,如下所示:

document.getElementsByTagName('input')[0].value = 'MyUsername';
document.getElementsByTagName('input')[1].value = 'MyPassword';

和它的工作原理。我看到2个字段填充了2个字符串。 (文件名没有ID。这就是为什么getElementsByTagName)

现在,我希望从VB.net代码中的变量中传递字符串,而不是javascript代码中的实际字符串。类似于:

VB.net代码

Dim USER as String = 'MyUsername'
Dim PASS as String = 'MyPassword'

和之前的JS代码类似:

document.getElementsByTagName('input')[0].value = USER;
document.getElementsByTagName('input')[1].value = PASS;

但显然不是那样!

我发现了一些有关将VB代码放入这样的帖子

browser.JavascriptObjectRepository.Register("boundAsync", New BoundObject())

和公共类BoundObject

并将其传递给JS代码,例如

await CefSharp.BindObjectAsync("boundAsync", "bound");

但是我对我之前提到的2个字符串的处理方式感到困惑。如何在VB.net中注册USER和PASS变量,然后在JS中调用它们的值来填充输入字段?

TIA

javascript vb.net cefsharp
1个回答
0
投票

是的,我刚才正在做!

在VB.net代码中]

Dim USER as String = 'MyUsername'

和JS代码中

document.getElementsByTagName('input')[0].value = '" + USER + "';

诀窍在引号中。而不是写= USER你这样写'" + USER + "'

© www.soinside.com 2019 - 2024. All rights reserved.