如果没有ID,我该如何点击网站上的按钮?

时间:2017-05-05 18:23:35

标签: c# internet-explorer automation webbrowser-control

所以即时尝试自动登录网站,我试图点击的按钮没有ID,所以我无法调用点击它。

这就是它的样子

<button class="btn btn-sm btn-block btn-green ng-binding">Login</button>

如何点击按钮?

这是我到目前为止所做的。

private void btnFill_Click(object sender, EventArgs e)
{
    wbBrowser.Document.GetElementById("login-username").InnerText = tbUsername.Text;
    wbBrowser.Document.GetElementById("login-password").InnerText = tbPassword.Text;
}

4 个答案:

答案 0 :(得分:2)

使用Xpath定位元素。

这样的事情:

driver.FindElement(By.XPath("//div/div/input"))

答案 1 :(得分:0)

为其分配ID。

<button class="btn btn-sm btn-block btn-green ng-binding" id="buttonSubmit">Login</button>

答案 2 :(得分:0)

找到课程和使用

$(".ng-binding").click(function(){

});

,如果有多个具有相同类名的按钮,则更具体

$("#priviousDIV .ng-binding").click(function(){
    //do something
});

答案 3 :(得分:0)

我的建议是研究页面的DOM并使用该知识以编程方式向下遍历文档树。您可以做的是在按钮上方找到一个具有ID的父元素,然后沿着树向下走,直到找到它为止。

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        var ParentElement = webBrowser1.Document.GetElementById("parentId");
        var child = ParentElement.Children[0];
        child.InvokeMember("click");
    }

基本上,如果您了解页面的HTML结构,则可以找到您要查找的元素。

每个现代网络浏览器(甚至IE)都有一些内置工具,可以让你检查页面的HTML,使用它然后制作你的代码来遍历它。