2016-08-17 25 views
1

enter image description here如何選擇使用文本輸入元素的自定義Vaadin組合框中的項目?

上述PIC顯示選擇列表,但它實際上沒有選擇列表,它包括「輸入」的標籤,所以我試圖用b.text_field.set(「阿根廷」)設置的值,而只聚焦(顏色變爲黃色)但它沒有設置值,我怎麼能這樣做?

該選擇列表下面的代碼

<div class="v-filterselect v-widget v-has-width v-filterselect-prompt" role="combobox" style="width: 100%;"> 
    <input tabindex="0" class="v-filterselect-input" id="gwt-uid-17" aria-labelledby="gwt-uid-16" style="width: 100%;" type="text" autocomplete="nope"> 
    <div class="v-filterselect-button" role="button" aria-hidden="true"> 
    </div> 
</div> 
+0

Watir的哪個版本是這個問題?它是Watir-Classic還是Watir-Webdriver,因爲實現/問題可能完全不同。如果Watir-Webdriver,哪個瀏覽器有問題? –

+0

它也將有助於提供一個讓我們看到/重現問題的示例頁面。通常你可以在圖書館的網頁上找到一個例子。這是[組合框](http://demo.vaadin.com/sampler/#ui/data-input/multiple-value/combo-box)嗎? –

+0

@JustinKo是的,組合框,你也指出了確切的頁面。 http://demo.vaadin.com/sampler/#ui/data-input/multiple-value/combo-box我現在使用watir-classic,而不是webdriver,也使用IE瀏覽器。 – Gopal

回答

3

給出的問題是的Watir-經典設定值後調用模糊事件。由於沒有從下拉列表中選擇一個值,Vaadin認爲這是一個無效輸入,並將其重置爲「沒有選擇國家」。你可以看到相同的行爲,當你用手動的組合框交互:

  1. 單擊文本字段
  2. 類型「阿根廷」
  3. 點擊其他地方的頁面(即運行模糊事件)

要填充字段,您需要從下拉列表中選擇一個項目。即使輸入字段正在清除,下拉菜單仍然保留(至少在Watir-Classic使用時)。因此,我們可以選擇一個項目而無需額外的工作。

下面是一個使用Vaadin演示頁的例子:

require 'watir-classic' 

browser = Watir::Browser.new 
browser.goto('http://demo.vaadin.com/sampler/#ui/data-input/multiple-value/combo-box') 

country = 'ARGENTINA' 

browser.text_field(aria_labelledby: 'gwt-uid-16').when_present.set(country) 
browser.div(id: 'VAADIN_COMBOBOX_OPTIONLIST').span(text: country).when_present.click 

注意,這不會複製當用戶與磁場相互作用產生的具體事件。但是,如果您只是使用控件,而不是測試該領域(即Vaadin開發人員),則這可能就足夠了。

+0

你簡直就是天才男人!優秀。同時我也解決此問題,這樣 'b.input。(:身份證, '東西')重點 b.input(:身份證, '東西')send_keys '阿根廷' b.send_keys:enter' 但問題是send_keys始終需要一個活動窗口。 – Gopal

+0

是的,由於缺乏健壯性,我必須避免使用'send_keys'。 –

+0

是的!我繼續自動化所有vaadin的元素,因爲我必須經歷一個項目,但是我沒有自動化這個富文本框,http://demo.vaadin.com/sampler/#ui/data-input/text-input/rich -text-area,你能指導我如何自動化這個嗎?還是我必須爲此創建另一個問題? – Gopal

相關問題