C# 为什么element.click()不能在Cefsharp中工作?

C# 为什么element.click()不能在Cefsharp中工作?,c#,selenium,web-scraping,selenium-chromedriver,cefsharp,C#,Selenium,Web Scraping,Selenium Chromedriver,Cefsharp,我尝试在Cefsharp中执行下面的脚本以单击DIV元素,但不起作用 private static string ClickUnreads = @"(function() { let chatsEl = document.querySelectorAll('.infinite-list-item'); for (let x = 0; x

我尝试在Cefsharp中执行下面的脚本以单击DIV元素,但不起作用

private static string ClickUnreads = @"(function() {
                                        let chatsEl = document.querySelectorAll('.infinite-list-item');
                                        for (let x = 0; x < chatsEl.length; x++) {
                                            let unread = chatsEl[x].getElementsByClassName('unread');
                                            if (unread.length > 0) {
                                                chatsEl[x].click();
                                            }
                                        }
                                    })();";

public void ClickUnreads()
{
    WebBrowser.ExecuteScriptAsync(ClickUnreads);
}
私有静态字符串ClickUnreads=@”(函数(){
让chatsEl=document.queryselectoral('.infinite list item');
for(设x=0;x0){
chatsEl[x]。单击();
}
}
})();";
public void ClickUnreads()
{
WebBrowser.ExecuteScriptAsync(单击未读);
}
我在这里发现了类似的线程,它们的问题与我的类似,但它们的答案都不起作用

我想使用基于Selenium的解决方案,就像我在Java中所做的那样,但我需要将浏览器嵌入到我的应用程序中,而且我不能使用Headless browser,因为我尝试自动化的站点需要QR码认证

是否可以使用Chromium web驱动程序来控制Cefsharp?如果可能的话,任何人都能为我点灯吗?(给我看看它的链接)

下面是我用Java编写的代码,使用ChromeWeb驱动程序,它的工作原理很好

while (true) {
    List<WebElement> chatItems = chatsList.findElements(By.className("infinite-list-item"));
    for (WebElement el : chatItems) {
        WebElement unread = el.findElement(By.className("unread"));
        if (unread != null) {
            unread.click();
        }
    }
    Thread.sleep(10000);
}
while(true){
List chatItems=chatsList.findElements(By.className(“无限列表项”);
for(WebElement el:chatItems){
WebElement unread=el.findElement(By.className(“unread”);
如果(未读!=null){
未读。单击();
}
}
睡眠(10000);
}
我也检查了一下,看看是否还有其他的嵌入式浏览器,但我没有时间对它们进行全部测试(如有任何建议,将不胜感激)

谢谢

好的

在这个帮助下,我设法解决了这个问题。 所以我把我的js脚本改成了这个

@"(function(x) {
let chatsEl = document.querySelectorAll('.infinite-list-item');
for (let x = 0; x < chatsEl.length; x++) {
    let unread = chatsEl[x].getElementsByClassName('unread');
    if (unread.length > 0) {
        let hoverEvent = document.createEvent ('MouseEvents');
        hoverEvent.initEvent ('mouseover', true, true);
        unread[0].dispatchEvent (hoverEvent);

        let downEvent = document.createEvent ('MouseEvents');
        downEvent.initEvent ('mousedown', true, true);
        unread[0].dispatchEvent (downEvent);

        let clickEvent = document.createEvent ('MouseEvents');
        clickEvent.initEvent ('click', true, true);
        unread[0].dispatchEvent (clickEvent);
    }
}
})();";
@”(函数(x){
让chatsEl=document.queryselectoral('.infinite list item');
for(设x=0;x0){
让hoverEvent=document.createEvent('MouseEvents');
hoverEvent.initEvent('mouseover',true,true);
未读[0]。dispatchEvent(hoverEvent);
let downEvent=document.createEvent('MouseEvents');
downEvent.initEvent('mousedown',true,true);
未读[0]。dispatchEvent(downEvent);
让clickEvent=document.createEvent('MouseEvents');
clickEvent.initEvent('click',true,true);
未读[0]。dispatchEvent(clickEvent);
}
}
})();";
我设法点击了未读的信息