【发布时间】:2017-06-07 10:02:23
【问题描述】:
我正在使用 selenium webdriver c#。我需要从excel中读取数据。
代码:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using Excel = Microsoft.Office.Interop.Excel;
namespace UIL
{
[TestClass]
public class UIL_Login : UtilityHelper
{
IWebDriver driver;
Excel.Application loginapp;
Excel.Workbook loginworkbook;
Excel._Worksheet loginworksheet;
Excel.Range loginrange;
public UIL_Login()
{
loginapp = new Excel.Application();
loginworkbook = loginapp.Workbooks.Open(@"D:\\MyProjects\\Selenium_C#\\SeleniumProjects\\UIL\\UIL\\Resources\\login.xls");
//loginworksheet = loginworkbook.Sheets[1];
loginworksheet = (Excel.Worksheet)loginworkbook.Worksheets.get_Item(1);
loginrange = loginworksheet.UsedRange;
}
[TestInitialize]
public void SetUp()
{
driver = new ChromeDriver(@"D:\\MyProjects\\Selenium_C#\\Selenium\\chromedriver");
driver.Navigate().GoToUrl("http://192.168.0.35:92");
driver.Manage().Window.Maximize();
}
/*Login without username*/
[TestMethod]
public void loginWithoutUsername()
{
try
{
int emptyUsernameRowNumber = 1;
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1000);
IWebElement username = webElement(driver, Constants.VAR_EMAIL);
username.Clear();
//username.SendKeys("amrutha.u@teamta.in");
username.SendKeys(loginrange.Cells[emptyUsernameRowNumber][1]);
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1000);
IWebElement password = webElement(driver, Constants.VAR_PASSWORD);
password.Clear();
// password.SendKeys("UIL@123#");
password.SendKeys(loginrange.Cells[emptyUsernameRowNumber][2]);
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1000);
IWebElement signinButton = driver.FindElement(By.XPath("//*[@id='mainDiv']/div[4]/div/div/form/a/button"));
signinButton.Click();
}
catch (Exception e)
{
Console.Write(e);
}
}
}
}
但我得到以下异常:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:最好的 重载方法匹配 'OpenQA.Selenium.IWebElement.SendKeys(string)' 有一些无效 CallSite.Target(Closure, CallSite, IWebElement, 对象)在 System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2[T0,T1](CallSite 站点,T0 arg0,T1 arg1)
谁能帮忙解决这个问题?
【问题讨论】: