В чем разница между интерфейсами SearchContext и WebDriver в Selenium или между ними? - PullRequest
0 голосов
/ 15 января 2020

Я видел где-то, что мы можем использовать оба

WebDriver driver = new FirefoxDriver()

или

SearchContext driver = new FirefoxDriver()

Я запутался, в чем разница между этими двумя различными интерфейсами?

Ответы [ 2 ]

1 голос
/ 15 января 2020

SearchContext

SearchContext - это интерфейс, который является контейнером времени выполнения для контекстной информации для поиска приложений. Он содержит метаинформацию, связанную с поиском, и может содержать ссылку на внешний контекст, который может быть полезен как для поиска, так и для обеспечения безопасности. Когда используется для поиска, он содержит ссылку на AppsWebContext и может быть получен getAppsContext. Этот контекст передается в код подключаемого модуля большинства приложений, где пользовательская реализация может получать контекстную информацию времени выполнения.


Интерфейс SearchContext

Интерфейс SearchContext имеет 2 (два) подинтерфейса:

  • WebDriver
  • WebElement

Реализующие классы:

  • ChromeDriver
  • EdgeDriver
  • EventFiringWebDriver
  • FirefoxDriver
  • InternetExplorerDriver
  • OperaDriver
  • RemoteWebDriver
  • RemoteWebElement
  • SafariDriver

SearchContext имеет только два метода:


Пример

Пример использования SearchContext выглядит следующим образом:

@Override
public List<WebElement> findElements(SearchContext searchContext) {
    List<WebElement> elements = new ArrayList<>();
    try {
        elements.add(this.findElement(searchContext));
    } catch (Exception ex) {

    }
    return elements;
}
0 голосов
/ 15 января 2020

Это лучший блог, который четко отвечает на этот вопрос: http://makeseleniumeasy.com/2017/04/02/hierarchy-of-selenium-classes-and-interfaces/

Чтобы добавить больше:

Драйвер SearchContext = new ChromeDriver ();

Теперь, если вы хотите использовать абстрактные методы, доступные в WebDriver, такие как get (String url), close (), quit () et c. Вы должны понизить экземпляр драйвера до уровня WebDriver:

((WebDriver) драйвер) .close ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...