如何在Windows上使用selenium发送pi符号(π)?

问题描述 投票:0回答:1

我正在测试自动化大学学习硒网络驱动程序课程。在第 6 章中,讲师使用的是 Mac,并且能够使用以下命令发送 pi 符号:

public void enterPi(){
        enterText(Keys.chord(Keys.ALT, "p") + "=3.14");
    }

但在 Windows 上,我必须按住 alt 按钮并按数字键盘上的 227。

我已经尝试了 Chrome 和 Edge 驱动程序,但仍然无法工作。

这是我正在使用的功能:

  public void enterText(String text){

        driver.findElement(formInput).sendKeys(text);
    }

我尝试了以下 3 个选项,得到了实际结果:

选项1:

       enterText(Keys.chord(Keys.ALT, "227") +"=3.14");

得到以下信息:

在此输入图片描述

选项2:

       enterText(Keys.chord(Keys.ALT, Keys.NUMPAD2, Keys.NUMPAD2, Keys.NUMPAD7) +"=3.14");

得到以下信息: 在此输入图片描述

选项3:不使用enterText函数

       new Actions(driver).keyDown(Keys.ALT).sendKeys("227").perform();

在此输入图片描述

java selenium-webdriver automated-tests
1个回答
0
投票

执行此操作的最佳方法是使用 Robot 类,该类可用于使用组合键执行系统级交互。请尝试使用以下代码进行相同的操作。您可以使用以下代码在必填字段中输入 π。

    WebElement we = driver.findElement(By.xpath("xpath of the element"));// Provide the identifier of the text box or field
    we.click();// perform a click operation to confirm the cursor is on the particular text input field
    Robot r = new Robot();
    r.keyPress(KeyEvent.VK_ALT);
    r.keyPress(KeyEvent.VK_NUMPAD2);
    r.keyRelease(KeyEvent.VK_NUMPAD2);
    r.keyPress(KeyEvent.VK_NUMPAD2);
    r.keyRelease(KeyEvent.VK_NUMPAD2);
    r.keyPress(KeyEvent.VK_NUMPAD7);
    r.keyRelease(KeyEvent.VK_NUMPAD7);
    r.keyRelease(KeyEvent.VK_ALT);
© www.soinside.com 2019 - 2024. All rights reserved.