2012-04-19 85 views
0

我試圖與網頁上的小部件進行交互,將數據輸入到表單元素中。但是我收到一個錯誤,說元素當前不可見,因此無法與之交互。當手動與頁面交互時,文本框會要求您輸入內容,然後當您單擊該框並接受輸入時,文本將消失。我嘗試過讓watir先點擊框,但是這對我也不適用。這裏是原始HTML:watir,元素當前不可見

<input class="symbol-search ui-autocomplete-input x-defaulttext-ghost" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">` 

後,我點擊改變這個瀏覽器中的對話框:

<input class="symbol-search ui-autocomplete-input" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">` 

建議?不可能?

+0

向我們展示您在發生錯誤時嘗試使用的watircode。 – 2012-04-20 05:25:17

+0

您可以手動執行此操作嗎?我有同樣的問題,事實證明,元素只是不像我想的那樣可見。 – 2012-04-25 19:05:20

回答

0

這爲我工作:

b.text_field(:class => /autocomplete/).set 'hello' 
+0

我在我的一些測試中使用過,並且我注意到它往往會減慢測試的性能。在一個案例中,我從一個腳本中刪除了三個元素中的三個正則表達式(每個元素對應一個),並且我從該場景的運行時間中刪除了20秒。 – 2012-04-25 19:04:18

+0

作爲一種替代方法,只要它是一致的,就可以使用完整的類名稱。大多數支持的屬性(http://wiki.openqa.org/display/WTR/HTML+Elements+Supported+by+Watir < - 這大部分都是正確的)不屬於你的html。 – 2012-04-25 20:56:56

+0

我通過使用與標籤名稱結合的部分類名來處理它。我討論了我是如何在這個SO帖子中獲得的:http://stackoverflow.com/questions/10093114/how-can-i-find-an-acronym-tag-with-watir-webdriver-without-taking-a-huge -perfo – 2012-04-26 23:09:21

1

一個潛在的問題是,在你的代碼中的input元素缺乏一個「類型」屬性,這是什麼的Watir使用從複選框區分之類的東西text_field(因爲它們是所有輸入元素,但行爲方式)

沒有這種類型的屬性(角色並沒有真正削減它,它甚至不是一個輸入領域的標準元素,甚至沒有在HTML5中,not as far as I can tell

缺乏一種類型ATTRIB ute,你將無法使用watir支持的大部分標準輸入類型,這意味着你將無法訪問.set方法你可能需要用基本的'element'類來解決這個問題,然後使用類似.send_keys之類的東西來點擊擊鍵。

這是誰的小部件?他們有一個演示頁面,顯示它的一個例子嗎?這將使人們更容易發現潛在的方式來與控制工作。

相關問題