【发布时间】:2020-06-23 05:01:30
【问题描述】:
我在使用 CefSharp 浏览器单击网页上的按钮时遇到问题。
- WinForms + CefSharp 浏览器
- 我使用 CefSharp 浏览器加载页面 (Twitter)
- 我将 HTML 源代码从 CefSharp 浏览器加载到 HtmlAgilityPack 中
- 我使用 HtmlAgilityPack 找到按钮
这就是我卡住的地方,我无法编写正确的 JS 脚本来执行点击。
Dim WebDoc As New HtmlDocument
WebDoc.LoadHtml(HTMLSource)
Dim TweetList As HtmlNodeCollection = WebDoc.DocumentNode.SelectNodes("//section[@aria-labelledby='accessible-list-1']//div[@data-testid='tweet']")
Dim ListofButtons As New List(Of HtmlNode)
For Each Tweet In TweetList
ListofButtons.Add(Tweet.SelectSingleNode(".//div[@role='button']"))
Next
For Each Button In ListofButtons
'As I understand I need to call Browser.ExecuteScriptAsync("button.click();")
Next
我尝试了一些我在网上找到的不同的东西,但它们都不起作用,而且所有教程都带有 id 和类名,在这种情况下我都不能使用。
【问题讨论】:
-
我能问你为什么使用VB吗?也许你可以使用 C#。 Bcs那里很容易+更大的社区可以帮助您解决问题:) stackoverflow.com/questions/59230233/…
-
@Deniz 因为这是我首先学到的,而且基本上是一样的,只是写法有点不同。就该线程而言,这些对我没有用,因为它没有任何简单的元素可供选择。忘记所有其他级别,我将如何选择具有 role='button' 的 div?
-
@Deniz 基本上,我需要 html//section[@aria-labelledby='accessible-list-1']//div[@data-testid='tweet']//div[@ role='button'],其中 // 是无限的搜索深度。 xpath 有几十个元素。
-
我已经发布的链接具有正确的 JavaScript 代码。 JavaScript 代码也应该为您工作 :) 但我还需要学习如何选择页面上多次出现的没有名称、iD 或 TagName 的按钮。如果我知道,我会告诉你:)
标签: javascript vb.net html-agility-pack cefsharp