Awesomium 如何点击 div link - .click() 不起作用 (vb.net)
Awesomium How to click a div link - .click() does not work (vb.net)
我喜欢点击 div 标签 link。
这是 HTML 代码:
<div class="m7"><div class="mB k7"></div><div class="mB l7"></div></div><span style="-moz-user-select: none;" role="button" class="d-s aj mqa" tabindex="0"><div class="yl kH"></div><div class="dv">Link</div></span>
我在 vb.net 申请中使用了此代码:
webControl1.ExecuteJavascript("document.getElementsByClassName('dv')[0].click();")
但是没有点击,弹窗也没有打开。
当我在我的 firefox 浏览器中的开发人员控制台中执行代码时,它运行良好。
所以不是 getElementsByClassName 选择不起作用,而是 Awesomium 在这里不起作用。
请帮助我。
谢谢
干杯
由于div元素没有任何click
方法,所以我们必须把它加起来。
这里有一个javascript添加一个click
的方法:
function AddClickMethod(element, event) {
var e = document.createEvent('HTMLEvents');
e.initEvent(event, true, false);
element.dispatchEvent(e);
}
然后在 Visual Basic.NET
中使用它
您只需使用参数 document.getElementsByClassName('dv')[0]
和 click
调用 javascript 函数
webControl1.ExecuteJavascript("function AddClickMethod(element, event) {var e = document.createEvent('HTMLEvents'); e.initEvent(event, true, false); element.dispatchEvent(e); } AddClickMethod(document.getElementsByClassName('dv')[0], 'click');")
或尝试 invokemember 方法..
getElementsByClassName("dv")(0).InvokeMember("click")
使用我的自定义函数库..
''' <summary>
''' returns a collection of all elements in the document with the specified class name, as a NodeList object.
''' </summary>
''' <param name="className">specified class name</param>
Function getElementsByClassName(ByVal className) As HtmlElement()
Dim c As New List(Of HtmlElement)
For Each a As HtmlElement In WebBrowser1.Document.All
If a.GetAttribute("className").Equals(className) Then
c.Add(a)
End If
Next
Return c.ToArray
End Function
不可能,因为 Awesomium 已经过时了。是Awesomium的问题。
所以结果是:切换到 cefSharp(chrome 浏览器)或 GeckoFX-45 (Firefox)
机器人是免费的。还有一个进一步开发的 Awesomium,名为 DotNetBrowser,但每个许可证 >1000 美元。
我喜欢点击 div 标签 link。 这是 HTML 代码:
<div class="m7"><div class="mB k7"></div><div class="mB l7"></div></div><span style="-moz-user-select: none;" role="button" class="d-s aj mqa" tabindex="0"><div class="yl kH"></div><div class="dv">Link</div></span>
我在 vb.net 申请中使用了此代码:
webControl1.ExecuteJavascript("document.getElementsByClassName('dv')[0].click();")
但是没有点击,弹窗也没有打开。 当我在我的 firefox 浏览器中的开发人员控制台中执行代码时,它运行良好。 所以不是 getElementsByClassName 选择不起作用,而是 Awesomium 在这里不起作用。
请帮助我。
谢谢
干杯
由于div元素没有任何click
方法,所以我们必须把它加起来。
这里有一个javascript添加一个click
的方法:
function AddClickMethod(element, event) {
var e = document.createEvent('HTMLEvents');
e.initEvent(event, true, false);
element.dispatchEvent(e);
}
然后在 Visual Basic.NET
中使用它您只需使用参数 document.getElementsByClassName('dv')[0]
和 click
webControl1.ExecuteJavascript("function AddClickMethod(element, event) {var e = document.createEvent('HTMLEvents'); e.initEvent(event, true, false); element.dispatchEvent(e); } AddClickMethod(document.getElementsByClassName('dv')[0], 'click');")
或尝试 invokemember 方法..
getElementsByClassName("dv")(0).InvokeMember("click")
使用我的自定义函数库..
''' <summary>
''' returns a collection of all elements in the document with the specified class name, as a NodeList object.
''' </summary>
''' <param name="className">specified class name</param>
Function getElementsByClassName(ByVal className) As HtmlElement()
Dim c As New List(Of HtmlElement)
For Each a As HtmlElement In WebBrowser1.Document.All
If a.GetAttribute("className").Equals(className) Then
c.Add(a)
End If
Next
Return c.ToArray
End Function
不可能,因为 Awesomium 已经过时了。是Awesomium的问题。
所以结果是:切换到 cefSharp(chrome 浏览器)或 GeckoFX-45 (Firefox) 机器人是免费的。还有一个进一步开发的 Awesomium,名为 DotNetBrowser,但每个许可证 >1000 美元。