4

Selenium コードで keyPress + クリック操作が正しく実行されないという問題があります。

テストは jqueryui.com リンクを開き、ページの最初の 2 つの li 要素を選択する必要があります。

私はSelenium 2.23とFirefox 10を使用しています。私のコードは次のとおりです(動作させるために4つの異なる方法を試しましたが、実行されませんでした):

FirefoxProfile プロファイル = 新しい FirefoxProfile();

profile.setEnableNativeEvents(真); WebDriver browser = new FirefoxDriver(profile); browser.get(" http://jqueryui.com/demos/selectable/ ");

リスト要素 = browser.findElements(By.cssSelector("ol#selectable li"));

 Actions a = new Actions(browser);      
 a.keyDown(Keys.CONTROL)
 .moveToElement(elements.get(0))
 .click()
 .moveToElement(elements.get(1))
 .click()
 .keyUp(Keys.CONTROL)
 .build()
 .perform();

    Keyboard keyboard = ((HasInputDevices) browser).getKeyboard();
    keyboard.pressKey(Keys.CONTROL);
    List<WebElement> selectOptions = browser.findElements(By.cssSelector("ol#selectable li"));
    selectOptions.get(1).click();
    selectOptions.get(3).click();
    keyboard.releaseKey(Keys.CONTROL); 
    Actions builder = new Actions(browser);
    builder.keyDown(elements.get(0), Keys.CONTROL)
        .click(elements.get(0))
        .click(elements.get(1))
        .keyUp(Keys.CONTROL);
    Action selectMultiple = builder.build();
    selectMultiple.perform();

    Robot robot = new Robot();
    robot.delay(1000);
    robot.keyPress(KeyEvent.CTRL_MASK);
    elements.get(0).click();
    elements.get(1).click();
    robot.keyRelease(KeyEvent.CTRL_MASK);

    browser.quit();

他の提案を手伝ってくれる人はいますか?

4

3 に答える 3

3

これはSelenium のバグで、Shift/Control/Alt と Windows 版 Firefox のクリックの組み合わせに影響します。バグにスターを付けると、おそらく修正されるでしょう。

于 2012-11-20T02:31:59.067 に答える
2

あなたの試みがどれもうまくいかない理由が本当にわかりません(特に最初の試み)。重要な定数はめちゃくちゃです。

とにかく、私はこれを機能させることができました(Windows XPで):

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
elements.get(0).click();
elements.get(1).click();
robot.keyRelease(KeyEvent.VK_CONTROL);
于 2012-07-10T12:42:23.340 に答える