我正在尝试创建一个允许您输入
的方法ClickOn(YourVariable);
而不是输入
driver.FindElement(By.Xpath(YourVariable)).Click();
我认为这是一种扩展方法,我有几个像这样:
public static IWebElement x(this IWebDriver driver, string xp)
{
return driver.FindElement(By.XPath(xp));
}
这是我正在研究的方法:
public static IWebDriver ClickOn(this IWebDriver driver, string button)
{
return driver.FindElement(By.XPath(button)).Click();
}
但我收到以下错误:
无法隐式将
Void
类型转换为OpenQA.Selenium.IWebDriver
我理解为什么我收到错误,但我想不出任何解决方案或解决方法。
非常感谢任何和所有这方面的帮助。
答案 0 :(得分:2)
您可以使用以下方法:
public static IWebDriver ClickOn(this IWebDriver driver, string button)
{
driver.FindElement(By.XPath(button)).Click();
return driver;// this driver will capture latest changes done
}
我更希望拥有可以在任何地方使用的IWebDriver
全局实例(单例),以便通过浏览器的最新更改可以在该全局单例驱动程序中。
答案 1 :(得分:0)
错误是因为您尝试返回.Click()
。 .Click()
没有返回类型(void
)。如果您只想单击一个元素,则无需返回任何类型。
我建议您传入By
而不是string
,这样您就可以使用任何定位器类型而不会被锁定到XPath(我不建议将其用于一般用法)。以下应该适合你。
public static void ClickOn(IWebDriver driver, By locator)
{
driver.FindElement(locator).Click();
}