遇到问题,C#,Webview和invokescriptasync。无法在下一个链接上执行 Click()



所以我正在分析网页中的数据。我有它,所以我可以自动登录到网站。但是,我需要能够点击页面上的"下一步"按钮。然而,Next链接没有分配ID,所以我获得正确链接的唯一方法是使用Xpath。下面的代码可以很好地填充字段。

string functionString = String.Format("document.getElementById('username').value = '{0}';", "usernamehere");
var result = string.Empty;
result = await webView1.InvokeScriptAsync("eval", new string[] { functionString });

然而。这是我需要查找"下一步"按钮的xpath。

"//a[contains(text(),'Next »')]"

我想在最后表演.Click(),但我一个都做不到。我想了这样的事情,但它产生了和Hresult错误,所以语法一定有问题吗?

String functionString = String.Format("document.evaluate("//a[contains(text(),'Next »')].Click();"");
result = await webView1.InvokeScriptAsync("eval", new string[] { functionString });

页面中的HTML代码

<span>
<a ng-class="{disabled: currentPage == pages_pagination.length-1}" href="" ng-click="nextPage(currentSearch)">Next »</a>
</span>

关于我该怎么做有什么想法吗?

使用以下内容。使用eval时,必须通过参数的重置。

String functionString = String.Format("document.evaluate("//a[starts-with(text(),'Next')]", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0).click();")

最新更新