硒不输入基于名称的字符串?

时间:2018-07-28 23:13:17

标签: c# selenium testing selenium-webdriver automated-tests

我正在尝试使用硒在C#visual studio中创建一些测试。当我运行测试时,谷歌浏览器导航到指定的网站,但是没有在用户名和密码字段中输入任何键/字符串...

这是为什么?我该如何解决?如何创建一个测试,让用户输入正确的用户名和密码查询,然后单击提交表单。

using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using NUnit.Framework;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;


namespace test
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            IWebDriver driver = new ChromeDriver("/Users/name/Desktop/test/");

            driver.Navigate().GoToUrl("http://newtours.demoaut.com/mercurywelcome.php");

            IWebElement username = driver.FindElement(By.Name("userName"));
            username.SendKeys("mercury");

            IWebElement password = driver.FindElement(By.Name("password"));
            password.SendKeys("mercury");

            var signIn = driver.FindElement(By.Name("login"));
            signIn.Submit();


        }
    }
}

1 个答案:

答案 0 :(得分:0)

页面加载需要一些时间。因此,请在导航到URL后添加一些等待时间。

在您的测试中添加下面的NuGet程序包,并按如下所示修改代码

NuGet程序包: DotNetSeleniumExtras.WaitHelpers

附加名称空间声明,

using OpenQA.Selenium.Support.UI; //for the wait method
using SeleniumExtras.WaitHelpers;  //for the expected conditions method

工作代码:

    driver.Navigate().GoToUrl("http://newtours.demoaut.com/mercurywelcome.php");

    var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));

    wait.Until(ExpectedConditions.TitleContains("Welcome"));//It will wait until the page load completion 

    IWebElement username = driver.FindElement(By.Name("userName"));
    username.SendKeys("mercury");