首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C# Cefsharp无法执行getElementsByClassName操作

C# Cefsharp无法执行getElementsByClassName操作
EN

Stack Overflow用户
提问于 2018-06-14 18:42:12
回答 1查看 3.5K关注 0票数 1

我正在尝试通过cefsharp中的类名从元素中读取文本。来自@Jim W的代码执行类似的任务,只是它使用ID而不是class

代码语言:javascript
运行
AI代码解释
复制
private void button1_Click(object sender, EventArgs e)
    {

        string EvaluateJavaScriptResult;
        var frame = chromeBrowser.GetMainFrame();
        var task = frame.EvaluateScriptAsync("(function() { return document.getElementById('searchInput').value; })();", null);

        task.ContinueWith(t =>
        {
            if (!t.IsFaulted)
            {
                var response = t.Result;
                EvaluateJavaScriptResult = response.Success ? (response.Result.ToString() ?? "null") : response.Message;
                MessageBox.Show(EvaluateJavaScriptResult);
            }
        }, TaskScheduler.FromCurrentSynchronizationContext());





    }

在将string EvaluateJavaScriptResult;更改为obj EvaluateJavaScriptResult;,将document.getElementById更改为document.getElementsByClassName并提供类名和索引后,我得到了error:"Uncaught SyntaxError: missing ) after argument list @:1:53"作为返回结果。我找不到丢失的)在哪里,我在很多地方尝试了很多不同的()的位置,我不认为这是真正的错误。我尝试过的所有操作仍然显示错误@:1:53 (位置?)我认为这意味着它在尝试查找类名之前出错了。有没有人知道我怎样才能成功地让cefsharp返回classname找到的东西的文本值?

编辑:在运行我在这里引用的代码的副本和粘贴选择时,我实际上得到了一个不同的问题,现在它只返回null。(这确实应该是相同的代码)

这是返回null的代码

代码语言:javascript
运行
AI代码解释
复制
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;

namespace WebAppWorkAround
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        InitializeChromium();
    }
    List<string> classList = new List<string>();
    public ChromiumWebBrowser chromeBrowser;

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
    private void InitializeChromium()
    {
        CefSettings settings = new CefSettings();
        Cef.Initialize(settings);
        chromeBrowser = new ChromiumWebBrowser("https://en.wikipedia.org/wiki/Main_Page");
        this.panel1.Controls.Add(chromeBrowser);
        chromeBrowser.Dock = DockStyle.Fill;

    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        Cef.Shutdown();
    }
    public string extract;

    private void button1_Click(object sender, EventArgs e)
    {

        object EvaluateJavaScriptResult;
        var frame = chromeBrowser.GetMainFrame();
        var task = frame.EvaluateScriptAsync("(function() { return document.getElementsByClassName('mw-headline')[0].value; })();", null);

        task.ContinueWith(t =>
        {
            if (!t.IsFaulted)
            {
                var response = t.Result;
                EvaluateJavaScriptResult = response.Success ? (response.Result ?? "null") : response.Message;
                MessageBox.Show(EvaluateJavaScriptResult.ToString());
            }
        }, TaskScheduler.FromCurrentSynchronizationContext());





    }


}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-18 20:41:00

.value属性的mw-headline是什么元素?考虑到正在发生的事情,可能不会。

假设mw-headline是一个像DIVSPAN这样的元素,您可以使用

代码语言:javascript
运行
AI代码解释
复制
var task = frame.EvaluateScriptAsync("(function() { return document.getElementsByClassName('mw-headline')[0].innerText; })();", null);

这是因为value用于文本框和输入字段,而像DIV这样的静态标记元素具有innerText和innerHTML。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50863951

复制
相关文章
编译Qt
Windows 下自己准备自己想要的编译器。编译自己想要的 Qt 版本 最近 5.6 出来了,有好多新的变化,第一时间准备尝鲜。 我自己的是 MSVC2015 Qt5.6
Harper
2021/07/27
7680
qt编译程序无法在其他电脑上运行
报错原因:缺少相关配置文件 1打开本机电脑的qt自带控制台 选择你编译的那个打开 在这里输入你的编译后的exe文件位置 然后输入cwindeployqt+程序名称 就会发
炒香菇的书呆子
2020/08/18
1.2K0
qt编译程序无法在其他电脑上运行
使用OpenCV在Qt控件上播放视频
https://gitee.com/fensnote/demo_code/tree/master/qtCode/opencv_video
fensnote
2021/05/31
3K0
使用OpenCV在Qt控件上播放视频
【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 创建 Qt 桌面程序 | 构建并运行 Qt 桌面程序 )
首先要安装 Qt 开发环境 , 参考 【Qt】Qt 开发环境安装 ( Qt 版本 5.14.2 | Qt 下载 | Qt 安装 ) 博客 ;
韩曙亮
2023/03/29
3.6K0
【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 创建 Qt 桌面程序 | 构建并运行 Qt 桌面程序 )
qt静态编译
qt静态编译出现以下问题怎么解决呢? D:\qt-5.9.0\qtbase\src\corelib\global\qlibraryinfo.cpp: fatal error C1853: “qmake_pch.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反) NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.EXE"”: 返回代码“0x2” Stop. NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"”: 返回代码“0x2” Stop. NMAKE : fatal error U1077: “cd”: 返回代码“0x2” Stop. NMAKE : fatal error U1077: “cd”: 返回代码“0x2” Stop.
用户3519280
2023/07/06
4660
vs2010编译64位qt5.5
下载qt5.5源代码 [http://download.qt.io/archive/qt/5.5/5.5.0/single/]
用户3519280
2023/07/06
4710
Qt5.8.0使用静态编译
下载链接: http://pan.baidu.com/s/1mhVe75e 密码: zdxh
繁花云
2018/07/31
1.6K0
qt交叉编译环境搭建_qt socket
简单服务发现协议(SSDP,Simple Service Discovery Protocol)是一种应用层协议,是构成通用即插即用(UPnP)技术的核心协议之一。 简单服务发现协议提供了在局部网络里面发现设备的机制。控制点(也就是接受服务的客户端)可以通过使用简单服务发现协议,根据自己的需要查询在自己所在的局部网络里面提供特定服务的设备。设备(也就是提供服务的服务器端)也可以通过使用简单服务发现协议,向自己所在的局部网络里面的控制点宣告它的存在。
全栈程序员站长
2022/11/07
1.2K0
为Qt程序获取编译日期时间
利用__DATE__与__TIME__编译宏特性为Qt程序添加编译日期时间。 static const QDateTime buildDateTime() { QString dateTime; dateTime += __DATE__; dateTime += __TIME__; return QLocale(QLocale::English).toDateTime(dateTime, "MMM dd yyyyhh:mm:ss"); } 另外,下列代码并不能获取编译日期时
Qt君
2019/08/05
2.8K0
编译QCAD_qt 编译
目前开源的二维CAD有QCAD、LibreCAD等,且LibreCAD可以说是QCAD的分支版本。对比这款开源软件,发现QCAD的功能与操作习惯和AutoCAD更接近。LibreCAD是纯C++开发,而QCAD使用了Qt的Script模块,使用了C++和Javascript脚本两种开发方式。我觉得使用脚本来扩展功能比纯C++开发效率会高点,因为这些开源项目源码都很大,编译比较花时间。如果使用脚本来开发的话,没有编译时间,可以边写脚本边测试,很方便。
全栈程序员站长
2022/09/20
1.6K0
编译QCAD_qt 编译
QT软件开发: 获取媒体详细信息(视频/音频)
一、环境介绍 操作系统介绍:win10 64位 QT版本: 5.12.6 编译器: MinGW32 FFMPEG: 4.2.2 二、软件效果 三、核心代码 3.1 widget.cpp #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); ui->
DS小龙哥
2022/01/12
1.3K0
QT软件开发: 获取媒体详细信息(视频/音频)
Qt 5.11.1 静态编译
离线安装包:http://download.qt.io/archive/qt/5.11/5.11.1/
我与梦想有个约会
2018/09/19
6.2K0
Qt 5.11.1 静态编译
使用python批量编译Qt工程脚本
主要用于windows平台(msvc编译器)。 部署环境   设置脚本内的build_list变量的值即可。 qmake.exe路径; jom.exe路径; 编译环境变量; 编译项目。 源码 import os import datetime import subprocess build_list = [ { 'qmake': r'C:\Qt\Qt5.12.2\5.12.2\msvc2017_64\bin\qmake.exe', 'qmake_params': r
Qt君
2019/10/23
1K0
浅谈 Qt 静态编译
本文要讲解的是Qt 静态编译,Qt中默认的应该是动态编译,那么本文就浅淡的介绍一下静态编译,先来看内容。
用户3519280
2023/07/06
1.2K0
在Jetson TX开发套件上使用QT Creator
在视频中,Jetsonhacks演示了如何在NVIDIA Jetson TX开发工具包中使用QTCreator IDE来cmake一个应用,他用librealsense 2做例子,这是一个为Intel RealSense D400相机开发的SDK。
GPUS Lady
2018/08/01
8300
在Jetson TX开发套件上使用QT Creator
Qt 5.11.1 静态编译
离线安装包:http://download.qt.io/archive/qt/5.11/5.11.1/
我与梦想有个约会
2020/01/04
2.2K0
Windows下QT编译和使用MQTT
前几篇文章写了MQTT服务器的搭建以及连接测试,本文是介绍用 QT来进行MQTT服务器的连接,由于QT没有现成的库,需要从QT 官网自己下载 MQTT 源码并编译。
嵌入式小屋
2022/04/27
3.7K0
Windows下QT编译和使用MQTT
qt source 源码编译
地址:https://download.qt.io/archive/qt/ 源码使用tag版本,6.0以上版本有cmakelist.txt可以直接cmake编译(但差的三方库比较多),6.0以下的版本,cmakelist.txt在qtbase文件夹中,使用
sofu456
2022/03/07
1.2K0
qt source 源码编译
Qt程序打包
这样qt就会自动把依赖拷贝出来,然后我们安装软件Enigma Virtual Box
繁花云
2018/07/31
1.4K0
qt tabwidget样式_qt tablewidget使用
ui.tabWidget->setStyleSheet( “QTabWidget{background: #f0f0f0;}” “QTabBar::tab{background:transparent;color:black;font:22px; min-width:103.8px;min-height:49px;}” “QTabBar::tab:first:selected{border-image:url(:/png/images/chat_state.png);}” “QTabBar::tab:first{border-image:url(:/png/images/chat.png);}” “QTabBar::tab:middle:selected{border-image:url(:/png/images/message_state.png);}” “QTabBar::tab:middle{border-image:url(:/png/images/message.png);}” “QTabBar::tab:last:selected{border-image:url(:/png/images/members_state.png);}” “QTabBar::tab:last{border-image:url(:/png/images/members.png);}” );
全栈程序员站长
2022/11/09
9360

相似问题

使用泛型方法时如何在泛型方法中设置泛型属性属性?

10

带有任何泛型参数的泛型属性列表

11

使用带有泛型对象属性的TableView

10

React.memo的Typescript泛型类等效类

16

使用变量,如类型/泛型方法

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档