Я ищу решение для внедрения FluentWaits в моем тесте java selenium. Проблема заключается в том, что использование ThreadLocal для объявления моих драйверов как thead-local для их параллельного запуска.FluentWait selenium с помощью ThreadLocal <RemoteWebDriver>
Вот мой код:
//My variable declaration
protected ThreadLocal<RemoteWebDriver> threadDriverFirefox = null;
//I create one for my thread in my BeforeTest
threadDriverFirefox = new ThreadLocal<RemoteWebDriver>();
threadDriverFirefox.set(new RemoteWebDriver(new URL(urlnode), DesiredCapabilities.firefox()));
//Add this method to get my driver
public WebDriver driverFirefox() {
return threadDriverFirefox.get();
}
//And use it like this in my test
driverFirefox().get(weburl);
Моя проблема с driverFirefox() я не могу найти способ реализовать его в FluentWait структуре:
Wait waitfluent = new FluentWait(driverFirefox()).withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(2, TimeUnit.SECONDS).ignoring(NoSuchElementException.class);
WebElement testElement = waitfluent.until(new Function() {
public WebElement apply(WebDriver driverFirefox()) {
return WebDriver driverFirefox().findElement(By.id("logEmailField"));
}
});
Но я» ve синтаксическая ошибка ...
Несколько маркеров в этой строке - Ошибка синтаксиса на t Oken ")", удалите этот маркер - ошибка синтаксиса на маркер (ы), неуместны конструкцию (ы)
Любая идея, чтобы это исправить?
Благодаря
Ошибка синтаксиса находится в 'общественного WebElement применяется (WebDriver driverFirefox())' вы не можете объявить метод в качестве параметра подпись метода, просто удалите атрибут '()' to 'public WebElement apply (WebDriver driverFirefox) { return driverFirefox.findElement (By.id (" logEmailField "));' –