2016-09-27 82 views
0

我正在將自動化測試用例轉換爲使用IE而不是FireFox。這種情況在Firefox上運行良好,但是我發現IE有一個非常奇怪的行爲。它複製登錄憑證的輸入並隱藏我需要訪問的輸入。 (請注意這是IE做的,而不是我正在測試的應用程序的源代碼)使用來自python的javascript來設置隱藏輸入的值

我正在使用Selenium和Python,我需要將登錄憑證傳遞給隱藏的輸入字段。我知道你不能訪問Selenium中隱藏的字段,但是我看到很多SO帖子都說你可以用Javascript來完成它。這使我想到了我的問題。我在這裏做錯了什麼?我對Javascript並不是很熟悉,但是到目前爲止我看到的一切都表明這應該起作用。

我的Python:(主要是腳本參數)

driver.execute_script("document.getElementsByClassName('form-control placeholder').setAttribute('value', '" + key + "')")

IE Page Source

IE Error

+0

你可以試試下面的代碼。 'driver.execute_script(「arguments [0] .setAttribute('value',arguments [1])」,driver.find_element_by_css_selector(「。form-control」),key)' –

+0

@SudharsanSelvaraj解決了我遇到的錯誤我正在測試的應用程序似乎仍拒絕登錄嘗試(有效憑證)。儘管這與這個問題無關。 :) –

+0

是否有任何具體的錯誤? –

回答

0

getElementsByClassName方法返回一個數組這樣的方法,你應該嘗試: driver.execute_script(「document.getElementsByClassName('form-control placeholder')[0] .setAttribute( 'value',''+ key +'')「)

+0

確實解決了錯誤,謝謝。但是,自從他首先提供了一個解決方案之後,我想給予Sudharsan這個答案。 +代表雖然。 –