首页 > 解决方案 > Selenium WebDriver Java 同字段加词循环

问题描述

这是我的第一条消息,它看起来像新手,但我需要你的帮助)我的目标是从某个列表中添加成对的单词,单击“添加”按钮,然后用另一对单词重复操作。所以我创建了接收 2 个单词的方法,将它们添加到字段并按下添加按钮。

public static void addWord(String eng, String rus) {
    driver.findElement(By.xpath("//input[contains(@placeholder, 'English Word')]")).sendKeys(eng);
    driver.findElement(By.xpath("//input[contains(@placeholder, 'Russian Word')]")).sendKeys(rus);
    driver.findElement(By.xpath("//button[contains(@class, 'add')]")).submit();
}

因此,如果我通过使用它手动进行操作addWord("Hello", "Привет");,但我有一个很大的单词列表并且想要编写代码,它将从列表中获取一对单词并将它们添加到方法中,然后重复直到所有单词都被添加。请告诉我如何做到这一点,也许使用数组和循环,但我不知道如何正确地做到这一点。

标签: javaselenium-webdriver

解决方案


您可以使用密钥对创建一个 Map,然后对其进行迭代:

Map<String, String> yourMap = new HashMap<String, String>() 
{
  {
    put("Hello", "Привет");
    put("Hello 2", "Привет 2");
    // Add all the inputs needed
  }
};

public static void addWord(Map yourMap) {
  yourMap.forEach((eng, rus) -> {
      driver.findElement(By.xpath("//input[contains(@placeholder, 'English Word')]")).sendKeys(eng);
      driver.findElement(By.xpath("//input[contains(@placeholder, 'Russian Word')]")).sendKeys(rus);
      driver.findElement(By.xpath("//button[contains(@class, 'add')]")).submit();
  });
}

推荐阅读