模拟按类单击javascript以创建元素
我在c#中使用ExecutElementAsync 我也想使用JavaScript模拟点击此按钮:模拟按类单击javascript以创建元素,javascript,c#,getelementsbyclassname,Javascript,C#,Getelementsbyclassname,我在c#中使用ExecutElementAsync 我也想使用JavaScript模拟点击此按钮: <a class="btn confirm" href="#"> <h5> Begin </h5> </a> 我的代码: string jsScriptB = System.Xml.Linq.XElement.Parse(@"<js><![CDATA[ document.getElementByClassNam
<a class="btn confirm" href="#">
<h5>
Begin
</h5>
</a>
我的代码:
string jsScriptB = System.Xml.Linq.XElement.Parse(@"<js><![CDATA[ document.getElementByClassName('btn confirm').click();]]></js>").Value;
browser.ExecuteScriptAsync(jsScriptB);
string jsScriptB=System.Xml.Linq.XElement.Parse(@“”).Value;
ExecuteScriptAsync(jsScriptB);
我真的不确定出了什么问题,但按钮没有点击
问题:如何在JavaScript文档中使用JavaScript单击该按钮。getElementsByClassName将返回一个HtmleElement数组,因此您不能直接调用它。您需要单击单个元素 document.getElementsByClassName('btn确认')[0]。单击() 其次,您试图在getElementByClassName中使用2类,这在第一位是无效的 你最好这样称呼它
document.querySelectorAll('.btn,.confirm')
browser.Document.GetElementById(".btn,.confirm").InvokeMember("click");
或者,如果html文档中只有一个元素,只需调用querySelector。以后你可以这样称呼它
document.querySelectorAll('.btn,.confirm')
browser.Document.GetElementById(".btn,.confirm").InvokeMember("click");
Winform web浏览器控件?@Adrian某种程度上说,这是windows formit中的浏览器,可能是因为您尚未检查DOM是否准备就绪@格雷普林斯我不确定情况是否如此。其他代码(如document.all(“'username”“).value=”“testSlash3”“;)可以工作,但此代码无法执行
console.log(document.getElementByClassName('btn confirm'))
?谢谢,这就解决了问题。我曾基于类似的问题尝试添加[0],但愚蠢地输入了一个错误,并说出了document.getElementByClassName('btn confirm')[0]。单击();(元素,而不是元素)。无论如何,谢谢你!