我正在尝试对某些页面元素(如 btn 或链接)进行简单的点击。
我编写了 2 个通过 xpath 和 CSS 选择器单击的函数。
这两个功能在浏览器的开发者控制台中都可以完美运行,但在 CEF 中部分不起作用。
代码完美地点击来自开发者控制台和 Cef 的简单链接
代码完美地点击了来自开发者控制台的确切按钮,但不会从 CEF 中点击。出于某种原因,它只是忽略它......
怎么会这样?js代码完全一样!...
public void Click(string xpath)
{
var js = "document.evaluate(\"" + xpath + "\", document, null, XPathResult.ANY_TYPE, null).iterateNext().click();";
EvaluateJavascript(js);
}
public void ClickCss(string css)
{
var js = "document.querySelector('"+ css + "').click()";
EvaluateJavascript(js);
}
public async Task EvaluateJavascript(string script)
{
JavascriptResponse javascriptResponse = await Browser.GetMainFrame().EvaluateScriptAsync(script);
if (!javascriptResponse.Success)
{
throw new JavascriptException(javascriptResponse.Message);
}
}
细节:
使用的点击代码:
_browser.ClickCss("#upload-container a");
再一次:相同的 js 代码在浏览器开发控制台中完美运行,但由于某种原因在 CEF 中不起作用。
顺便说一下,我已经在 Chrome 中测试了 JS 代码。所以 WebEngine 在这两种情况下都是一样的。
PS:也适用于我模拟将某些特定文件拖放到某些特定 Web 元素的过程。但是我没有找到任何关于此的信息,不适用于 Cef,不适用于 Js,不适用于 JQuery ... =(
慕娘9325324
狐的传说
相关分类