【问题标题】:CefSharp button clickCefSharp 按钮单击
【发布时间】: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


【解决方案1】:

我的做法是:

Browser.EvaluateScriptAsync("document.querySelectorAll(""section[aria-labelledby='accessible-list-1'] div[data-testid='tweet'] div[role='button'])"").forEach(button=>button.click())")

【讨论】:

  • @deniz 我就是这样做的。
  • 不错不错。现在就试试看! :) ForEach?所以你按下页面上的每个按钮?^^
  • @Deniz 每个选择的按钮,是的。
  • @deniz 您可以通过多种方式执行此操作,例如:仅 (""button"") 为所有或 (""button[class='btn btn-success]"") 为一个。
  • 我对JS不熟悉,我是通过结合多个答案发现的。 "section[aria-labelledby='accessible-list-1'] div[data-testid='tweet']" 就像 "section[@aria-labelledby='accessible-list-1']//div[@data -testid='tweet']" 在 htmlagilitypack 中。因此,基于此,我将使用 "input[name='q']"
猜你喜欢
  • 1970-01-01
  • 2020-04-01
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 2012-10-16
  • 1970-01-01
  • 2018-02-04
  • 2013-12-24
相关资源
最近更新 更多