这是我定义了选择chrome和Firefox浏览器的BrowserRunnerFactory.cs:
InvalidRequest: Error from server: code=2200 [Invalid query]
message="Unmatched column names/values"
我已经调用它,并在calss baseInitializer.cs中定义了两个不同的归档浏览器和驱动程序:
public class BrowserRunnerFactory
{
public static IBrowserInterface InitiateBrowser(BrowserType BrowserType)
{
switch (BrowserType)
{
case BrowserType.Chrome:
return new ChromeRunner();
case BrowserType.Firefox:
default:
return new FirefoxRunner();
}
}
我正在尝试创建自动化测试,并且尝试使用浏览器来调用chrome浏览器。并使用 driver 字段来处理硒属性,例如driver.Manage(),driver.FindElement(By.Id()),driver.Close()*等。
public void GetDriver()
{
if (browser is null)
{
browser =
BrowserRunnerFactory.InitiateBrowser(BrowserType.Chrome);
driver = browser.Driver;
}
}
运行测试后,我将获得NullReferenceException:对象引用未设置为对象的实例。 在调试时,我发现驱动程序为null。当我想要GetDriver方法中定义的驱动程序时
BaseInitializer baseinItializer = new Baseinitializer();
public IWebDriver driver = null;
public bool TabIsOpen()
{
driver = baseInitializer.driver;
driver.Manage().Timeouts().PageLoad = TimeSpan.FromMinutes(1);
try
{
driver.FindElement(By.XPath(_configModel.NewRepository)).Click();
return true;
}
catch (Exception e)
{
_logger.Log("Error occured while looking for CLientTabId:" +
e.Message);
return false;
}
finally
{
driver.SwitchTo().DefaultContent();
}
}
我是第一次尝试这种设计模式,也是C#的初学者。因此,任何反馈以及有关我的编码实践的建议都将非常有帮助。