Tipo de correspondência:não é possível converter a partir do tipo de elemento de Objeto para Cookie
-
23-12-2019 - |
Pergunta
Eu estive tentando encontrar um método para baixar arquivos a partir de sites dentro de Selênio e encontrou uma solução aqui
Problema é que quando eu copiar esse exemplo e colá-la no eclipse, recebo um erro em uma linha de leitura:-
Type mismatch: cannot convert from element type Object to Cookie
A seção em questão é:-
private BasicCookieStore mimicCookieState(Set seleniumCookieSet) {
BasicCookieStore mimicWebDriverCookieStore = new BasicCookieStore();
for (Cookie seleniumCookie : seleniumCookieSet) { <<---This is the problem line
BasicClientCookie duplicateCookie = new BasicClientCookie(seleniumCookie.getName(), seleniumCookie.getValue());
duplicateCookie.setDomain(seleniumCookie.getDomain());
duplicateCookie.setSecure(seleniumCookie.isSecure());
duplicateCookie.setExpiryDate(seleniumCookie.getExpiry());
duplicateCookie.setPath(seleniumCookie.getPath());
mimicWebDriverCookieStore.addCookie(duplicateCookie);
}
return mimicWebDriverCookieStore;
}
E é chamado de seção de leitura:-
LOG.info("Mimic WebDriver cookie state: " + this.mimicWebDriverCookieState);
if (this.mimicWebDriverCookieState) {
localContext.setAttribute(ClientContext.COOKIE_STORE, mimicCookieState(this.driver.manage().getCookies()));
}
Eu não tenho nenhuma idéia de como resolver este problema, como eu não escrever qualquer deste código e não estou familiarizado, além do lançamento original era bem mais de um ano atrás, então eu estou supondo que não está mais sendo monitorado/actualizado.
Alguém pode me ajudar em tudo, a perceber isso?
Qualquer ajuda apreciada.
Solução
Isso é porque você está usando o tipo de matérias Set
como parâmetro.Alterá-lo para Set<Cookie>
.Para um tipo de matérias Set
, o iterador que você recebe é apenas Iterator
.E é next()
método irá dar-lhe um elemento do tipo Object
.