【问题标题】:Selenium: Entering Username + PasswordSelenium:输入用户名+密码
【发布时间】:2015-07-31 17:13:40
【问题描述】:

我目前正在使用 C# 和 Selenium 编写一个测试软件。我正在尝试输入用户名和密码并使用网站的登录功能,但每次提交表单时,它都会以无效的用户名或密码返回,我相信它试图输入数据重复次数或输入数据错误的字段。

这是我的代码:

        private static void LogInAsUser()
    {
        Driver.FindElement(By.XPath("//a[contains(@href, '#login-window')]")).Click();
        Driver.FindElement(By.XPath("//input[contains(@id, 'UserName')]")).Click();
        Driver.FindElement(By.XPath("//input[contains(@id, 'UserName')]" )).SendKeys("exampleuser@exampleemail.com");
        Driver.FindElement(By.XPath("//input[contains(@id, 'Password')]")).Click();
        Driver.FindElement(By.XPath("//input[contains(@id, 'Password')]")).SendKeys("example");
        Driver.FindElement(By.XPath("//input[contains(@id, 'Password')]")).Submit();
        //Driver.FindElement(By.Id("btnLogin")).Submit(); //*[@id="btnLogin"] //*[@id="login-window"]/div/div/div[3]/div[1]/div
        {
        Result.Pass(60);
        }
    }

不是我所知道的最干净的代码,但我们将不胜感激。

【问题讨论】:

  • 那么问题是什么?
  • 1.) 您不必在输入表单上添加.click() 和 2.) 如果您也可以发布您的 html 代码会更好

标签: c# selenium


【解决方案1】:

如果您发布您的 HTML 代码会很有帮助,但即使没有它也可以这样尝试:

private static void LogInAsUser()
{
        Driver.FindElement(By.XPath("//a[contains(@href, '#login-window')]")).Click();

        IWebElement username = Driver.FindElement(By.XPath("//input[contains(@id, 'UserName')]" ));
        IWebElement password = Driver.FindElement(By.XPath("//input[contains(@id, 'Password')]"));

        username.Clear();
        username.SendKeys("exampleuser@exampleemail.com");

        password.Clear();
        password.SendKeys("example");

        Driver.FindElement(By.Id("btnLogin")).Click();
        {
            Result.Pass(60);
        }
}

您的输入元素不需要 Click() 方法,只需找到它们并发送数据即可。最后你只想点击登录按钮。

【讨论】:

  • 我实际上会扩展您的代码并在键入之前清除字段,以防万一。这可能是他的问题。
  • 太棒了,谢谢。不再出现错误并直接将我登录。我想我只是用几乎重复的行使其过于复杂。
  • @Rehyn 使用SendKeys() 方法时,框架会自动将 DOM 焦点更改为您正在向其发送键的元素。
  • 不客气!可能会考虑将其作为正确答案进行检查;-)
  • @drkthng 只需要等到计时器用完才能选择它;)
猜你喜欢
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 2020-10-30
  • 2019-11-02
  • 1970-01-01
  • 2015-10-04
  • 2013-08-26
相关资源
最近更新 更多