我创建了以下扩展方法,该方法一旦发现一个元素便“突出显示”:
public static IWebElement FindElementHighlight(this IWebElement element, By by, IWebDriver driver)
{
element = driver.FindElement(by);
if (driver is IJavaScriptExecutor)
{
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].style.border='3px solid green'", element);
System.Threading.Thread.Sleep(2000);
}
return element;
}
问题是我不想使用element.FindElementHighlight(....)
但我想使用driver.FindElementHighlight(....)
如何修改扩展方法,以便可以使用驱动程序进行调用?
答案 0 :(得分:0)
如果要扩展方法扩展IWebDriver
,则需要修改方法签名以this IWebDriver driver
开头。请参见下面的方法。
public static IWebElement FindElementHighlight(this IWebDriver driver, By by)
{
IWebElement element = driver.FindElement(by);
if (driver is IJavaScriptExecutor)
{
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].style.border='3px solid green'", element);
System.Threading.Thread.Sleep(2000);
}
return element;
}
你这样称呼
IWebElement element = Driver.FindElementHighlight(By.Id("someId"));