7
  • 操作系統:Windows 10
  • 瀏覽器:IE11
  • 硒(Python)的程序包:3.0.1
  • IEWebDriverServer.exe:3.1.0

我們正在準備我們的自動化節點遷移到Windows 10,並在我們的測試中,我們發現,雖然我們的腳本在FF,IE和Chrome,他們Win7上正常工作僅在IE 10的Windows 10上失敗(適用於FF和Chrome)。硒3.0.1與IE11不能在Windows 10找到元素(在Windows 7正常工作與IE11)

當agianst IE運行時,瀏覽器實例化並webdriver的是能夠看到瀏覽器(我想一個簡單的命令如driver.back(),它返回到前一頁)。但是,我們無法獲得任何find_element ...調用。無論是通過ID,名稱,CSS,XPath的,等等。該腳本將只是失敗,說明沒有元素被發現的給定的ID /名稱/ CSS/XPath的(任何方法我試圖用找到webelement)。

我已經看到了關於那個打破了這個,並建議恢復更新安全更新帖子。這是一年前,但似乎後來的更新已經解決了這個問題。

我也看到了關於如何確保受保護的模式是在所有區域中,註冊表值等,這些建議都沒有工作,雖然同樣的職位。

這裏是我使用的(修改,以在Chrome或Firefox通過運行時)不IE11工作示例腳本只:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Ie() 
driver.implicitly_wait(30) 
driver.maximize_window() 

# navigate to the application home page 
driver.get("http://www.google.com") 

# get the search textbox 
search_field = driver.find_element_by_id("lst-ib") 

運行此腳本錯誤是:

selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with id == lst-ib 
+0

您可以加入,你不能得到執行 (這聽起來像你有I.E. 10炎熱的安全特徵,這種情況下,有沒有什麼可以做的) – DaniDev

+0

就這麼簡單的東西代碼: 自我。點擊() 這可以在FF和Chrome的Windows 10上正常工作,但不能在IE11中正常工作。我已經嘗試過各種替代方法,比如find_element_by_css_selector,by_id,by_name等等。但是在所有情況下,它聲明它找不到該元素。我覺得必須有一些明顯的東西,我不知道其他人似乎沒有發佈這個問題。 – derekmw

+0

爲了添加,我創建了一個非常簡單的測試,使用列出的示例來創建一個基本的硒腳本(在本例中是一個python示例)。我看到了同樣的行爲。 IE加載並導航到URL,但它找不到任何元素。該腳本未能說「無法找到帶有ID的元素...」。任何幫助在這裏或建議,將不勝感激。 – derekmw

回答

0

雖然我敢肯定你不是說現在困擾,我前幾天記錄的同樣的問題,我仍然停留(click here)。我進一步將問題縮小到了安全性。如果你增加日誌記錄,你會看到下面幾行:

W 2017-03-06 17:27:41:539 Script.cpp(494) -2147024891 [Access is denied.]: Unable to execute code, call to IHTMLWindow2::execScript failed 
W 2017-03-06 17:27:41:540 Script.cpp(180) Cannot create anonymous function 
W 2017-03-06 17:27:41:540 ElementFinder.cpp(98) A JavaScript error was encountered executing the findElement atom. 

我已經試過每個安全選項開/關但無濟於事。我在本地遇到問題,並沒有設置我的CI環境,所以希望當我旋轉它時,它應該只是工作(手指交叉)。

P.S.我不認爲你有一個虛擬的虛擬機!

+0

對不起,術語'破碎的虛擬機'。我知道虛擬機不一定會壞掉,但我懷疑是否有更新(無論是對操作系統還是瀏覽器的補丁/安全更新)發生,這是造成這種情況的原因。但是,因爲我似乎沒有辦法解決這個問題,所以我這樣說。如果你找到了一種方法來讓它發揮作用,我會全力以赴,並且會很感激。我保留了這個虛擬機,並且準備在兩者之間進行比較,看看我是否也可以將其隔離。 – derekmw

0

每當我碰到一個 'NoSuchElementException異常' 跌跌(雖然不是在Windows或IE),這一直工作:

添加這些進口:

from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 

然後找到元素:

search_field = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, """//*[@id="lst-ib"]"""))) 
search_field.send_keys('Example') 

感謝網絡與Python刮。我希望這可以幫助,雖然目前我沒有Windows或IE來提前驗證。

+0

感謝您的建議,但不是,這對IE不起作用。重要的是要注意,簡單的find元素在FF和CH中調用工作正常。只是不是在Windows 10上的IE11。 – derekmw

相關問題