使用Selenium Chrome C#填写密码

时间:2018-02-28 17:35:24

标签: c# google-chrome selenium

今天登录页面已更改https://fastinvest.com/de/investor/login,我无法使用selenium和chrome webdriver填写密码。

我通常使用XPath,但表单字段不会被填写。我也尝试过执行javascript,但我无法实现。

如果你能帮助我找出如何输入密码,那将是非常好的。

            browser = new ChromeDriver("Chrome-Path", options);
            browser.Url = "https://fastinvest.com/de/investor/login";
            browser.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(60);

            IWebElement elem = browser.FindElement(By.CssSelector("input#loginEmail.form-control"));
            elem.SendKeys("test@gmail.com");
            elem.FindElement(By.CssSelector("input#loginPassword.form-control")).SendKeys("test@gmail.com");

2 个答案:

答案 0 :(得分:0)

按名称查找元素:

elem.FindElement(By.Name("password")).SendKeys("test@gmail.com");

这也可以:

elem.FindElement(By.Id("loginPassword")).SendKeys("test@gmail.com");

答案 1 :(得分:0)

您不需要浏览器控件即可向服务器发布用户名/密码。在你的情况下,它可以是:

string url = "https://fastinvest.com/de/auth/login";
using (var client = new HttpClient())
{
    Dictionary<string, string> values = new Dictionary<string, string>()
    {
        { "_token","MNpOE4CLgMAelhtwNmG5dhxt1JCUCZsbj9CXnwQT" },
        {"email","aa@bb.com" },
        {"password","12345" }
    };

    var content = new FormUrlEncodedContent(values);
    var response = await client.PostAsync(url, content);
    var html = await response.Content.ReadAsStringAsync();
}

PS:查看您网站的html内容并检查 FORM 元素