2016-01-22 89 views
0

我無法使用selenium getText方法獲取文本框中存在的值。它始終返回空值。無法使用硒webdriver從文本框中獲取值

使用`js.executeScript( 「的document.getElementById( 'WBJDCD')的價值。」 這也返回空值也試過。

我的HTML看起來如下。

<input id="WBJDCD" class="inforTextbox upperCaseClass" type="text" tabindex="-1" readonly="readonly" style="width: 42px; text-transform: uppercase;" hlp="JDCD" maxlength="5"> 

任何人都可以請幫助

+0

你在用什麼驅動程序?此外,您是否已驗證(例如,通過人工檢查或自動屏幕截圖)在您檢查時輸入實際上是否有文本?用於getText()的JavaDoc表示「獲取可見(即不被CSS隱藏)的innerText,包括子元素,沒有任何前導或尾隨空白。」所以它應該工作。 –

+0

Andrew,輸入文本包含值。但看起來像這個值在html中不可見。有關如何處理這種情況的任何想法? – user3857726

+0

你肯定錯過了一個'value'屬性,所以除非在運行時添加這個屬性,否則我不會看到你期望的值會來自哪裏。您的輸入標籤也未關閉。 –

回答

2

你只需要elem.getAttribute("value"),這將返回當前當然,這可能爲空太(通過HTML屬性或DOM屬性通過JavaScript等設置是否設置)。

getText()返回元素的innerText(即, <input ...>Hello</input>這不是你想要的。

+0

當我通過瀏覽器document.getElementById('WBJDCD')。值執行腳本。它返回適當的價值。但是,當我通過java運行它 - js.executeScript(「document.getElementById('WBJDCD').value。它返回空{document.getElementById(...)爲空} – user3857726

+0

如果您運行Java爲什麼不只是使用'getAttribute(「value」)'解決你的問題而不是執行JS?你的'executeScript()'返回null的原因是因爲腳本中沒有'return ...;',所以方法沒有任何東西可以返回。 –

+0

非常感謝getAttribute(「value」):) :) yaayyy – user3857726