【问题标题】:Selenium CTRL and click not working?Selenium CTRL 并单击不起作用?
【发布时间】:2013-07-08 21:47:26
【问题描述】:

我试图通过单击表格中的一行然后移动到第二个,按住 shift 或 control 并单击该行以突出显示两行来选择表格中的一行。我在使用 selenium webdriver 和 java 时遇到了问题。我不明白为什么这段代码不起作用?它将选择第一行然后突出显示第二行但是当它单击第二行时第一行被取消选择?这是我正在使用的代码:

  new Actions(driver)
            .moveToElement(selectConsentRow)
            .click()
            .moveToElement(secondRow)
            .keyDown(Keys.SHIFT)
            .click()
            .perform();

【问题讨论】:

  • 你的标题是CTRL,但你的代码是SHIFT,错字?只是一个奇迹。通过查看代码,它似乎是“正确的”。我确实注意到您在.perform() 之前缺少.build()。你试过吗?
  • 是的,我都试过了。是的,我添加了 .build() 以查看它是否有效,但它没有。任何其他建议导致我想不出任何东西。

标签: java selenium selenium-webdriver


【解决方案1】:

如果你不反对使用jquery,那么你可以试试这个

driver.findelement(By.cssSelector(selectConsentRow_css_locator)).click();
   String script = "e = jQuery.Event('click');e.ctrlKey = true;    $('secondRow_Css_locator').trigger(e);";
   js.executeScript(script);

【讨论】:

    【解决方案2】:

    我已经设法用以下代码解决了这个问题:

     Robot robot = new Robot();
        selectConsentRow.click();
        robot.keyPress(KeyEvent.VK_CONTROL);
        secondRow.click();
        robot.keyRelease(KeyEvent.VK_CONTROL);
    

    【讨论】:

    • 我认为你应该避免这样做。如果您使用RemoteDriver,此代码将不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 2018-04-22
    • 2014-01-12
    • 2016-08-18
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多