4

vaadin バージョン 7.6.4 と Testbench (4.0.3) との統合テストを行っています。

いくつかのコンボボックスを含むビューがあります。それらの1つにこのプロパティがありますcomboBox.setTextInputAllowed(false);テスト目的で、コンボボックスのデフォルト値を変更したいので、デフォルトとは異なる要素を選択する必要があります。

要素を選択するために、次のコードを試しました。

 $(ComboBoxElement.class).selectByText("ElementName");

ただし、これは次の場合にのみ機能しますcomboBox.setTextInputAllowed(true);

sendkeys()また、選択した値を変更するために使用しようとしました:

$(ComboBoxElement.class).openPopup();
$(ComboBoxElement.class).sendKeys(keys.ARROW_DOWN);
$(ComboBoxElement.class).endKeys(Keys.ENTER);

このコードは、comboBox ポップアップを正しく開きますが、アイテムを選択しません。setFocus();でフォーカスを設定した場合も同様です。

プロパティを使用してコンボボックスの値を変更する方法を教えてくださいsetTextInputAllowed(false)

4

1 に答える 1

1

確かに、少なくとも私が持っていた Vaadin 7.7.3 & TB 4.1.0.alpha1 では、あなたのシナリオは期待どおりに機能していないようです。ソース(行 43 atm)を見ると、コンボが読み取り専用である特定のケースでは、TestBench はそれを書き込み可能にし、指定されたテキストを送信し、ポップアップ候補リストから対応する項目を選択します。それにもかかわらず、小規模なデバッグ セッション中に、彼らが望んでいたものtext.equals(popupSuggestions.get(0)と等しくないことが容易にわかります。Region - 5

デバッグ

結論として、これは TB 自体のバグである可能性があります。私にはいくつかの推測がありますが、どのように、そしてなぜということを徹底的に調査する時間はありませんでした。

回避策として、ポップアップを開き、XPath 式を使用して正しい項目を見つけてクリックします。Region - 1という名前のアイテムを含むコンボを含むデモアプリがありますRegion - 10

コンボ内容

選択するには、次のRegion - 5ことを行いました。

@Test
public void shouldOpenGridColumnVisibilityPopupAndSelectItems() {
    getDriver().get("http://localhost:8080/");
    ComboBoxElement combo = $(ComboBoxElement.class).first();
    combo.openPopup();
    findElement(By.xpath("//*[@id='VAADIN_COMBOBOX_OPTIONLIST']//span[text()='Region - 5']")).click();
}

結果:

回避策の結果

于 2016-10-03T16:23:35.947 に答える