2014-02-27 62 views
3

我一直試圖找到內硒下載從網站上文件的方法,並找到了解決here類型不匹配:不能從元素類型的對象轉換爲餅乾

麻煩的是,當我複製這個例子中,並將其粘日食我得到一個在線閱讀的錯誤: -

Type mismatch: cannot convert from element type Object to Cookie 

有問題的部分是: -

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; 
    } 

,並從部分稱爲REA丁磊: -

LOG.info("Mimic WebDriver cookie state: " + this.mimicWebDriverCookieState); 
if (this.mimicWebDriverCookieState) { 
    localContext.setAttribute(ClientContext.COOKIE_STORE, mimicCookieState(this.driver.manage().getCookies())); 
} 

我不知道如何解決這個問題,我沒有寫此代碼的任何,我不那麼熟悉,加上原來的職位是一年多前,所以我猜不再被監視/更新。

誰能幫助我的人搞清楚了這一個呢?

任何幫助非常感謝。

+1

嘗試使用通用'設置'(或'設置')而不是原始'Set',和大部分的轉換問題,很容易解決自己。原始類型有隻爲落後的支持,並應在被寫在最後7(?)年 – amit

回答

4

那是因爲你使用原始類型Set作爲參數。將其更改爲Set<Cookie>。對於原始類型Set,你得到的迭代器就是Iterator。和它的next()方法會給你Object類型的元素。

+0

這擺脫了驗證警告,歡呼聲任何代碼來避免!一旦Stackoverflow允許我將標記爲答案! :) – MorkPork

相關問題