我正在尝试使用硒在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();
}
}
}
答案 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");