增强的扩展方法

时间:2019-04-04 23:24:33

标签: c# selenium-webdriver

我创建了以下扩展方法,该方法一旦发现一个元素便“突出显示”:

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(....)

如何修改扩展方法,以便可以使用驱动程序进行调用?

1 个答案:

答案 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"));