【问题标题】:Loop to fill a data entry - Selenium WebDriver循环填充数据条目 - Selenium WebDriver
【发布时间】:2015-10-01 12:29:29
【问题描述】:

如何做一个循环来扫描一个矩阵并从矩阵中取出数据并填写条目?

图片说明问题...我需要通过方法花费几次并从中获取数据并填写条目并遵循正常流程的自动化。

我可以填写数据输入方法:

driver.findElement(By.xpath("/html/body/center/table/tbody/tr[2]/td[2]/form/table[3]/tbody/tr[17]/td/input[1]")).sendKeys(offers());

我点击过滤数据以填充它 TextArea :

driver.findElement(By.xpath("/html/body/center/table/tbody/tr[2]/td[2]/form/table[3]/tbody/tr[17]/td/input[2]")).click();

在 textArea 中选择填充的数据:

Select selecionapermanenciamulta = new Select(driver.findElement(By.xpath("/html/body/center/table/tbody/tr[2]/td[2]/form/table[3]/tbody/tr[19]/td/table/tbody/tr/td[1]/select")));
        selecionapermanenciamulta.selectByIndex(0);

我点击箭头把他带到另一边:

driver.findElement(By.xpath("/html/body/center/table/tbody/tr[2]/td[2]/form/table[3]/tbody/tr[19]/td/table/tbody/tr/td[2]/input[1]")).click();

【问题讨论】:

  • 也许我遗漏了一些东西,但看起来你可以把代码放在一个 for 循环中来完成你想要的。 for (int i = 0; i < numOfTimesToLoop; i++) { }
  • @Andrio 你可以告诉我它在我的代码中是怎样的,好吗?我是编程新手。

标签: java for-loop selenium-webdriver while-loop automated-tests


【解决方案1】:

所以要让它循环您列出的操作,您可以使用 for 循环,如下所示:

    int numOfTimesToLoop = 5;

    for (int i = 0; i < numOfTimesToLoop; i++) {
        driver.findElement(By.xpath("/html/body/center/table/tbody/tr[2]/td[2]/form/table[3]/tbody/tr[17]/td/input[1]")).sendKeys(offers());
        driver.findElement(By.xpath("/html/body/center/table/tbody/tr[2]/td[2]/form/table[3]/tbody/tr[17]/td/input[2]")).click();

        Select selecionapermanenciamulta = new Select(driver.findElement(By.xpath("/html/body/center/table/tbody/tr[2]/td[2]/form/table[3]/tbody/tr[19]/td/table/tbody/tr/td[1]/select")));
        selecionapermanenciamulta.selectByIndex(0);

        driver.findElement(By.xpath("/html/body/center/table/tbody/tr[2]/td[2]/form/table[3]/tbody/tr[19]/td/table/tbody/tr/td[2]/input[1]")).click();
    }

例如,它将循环 5 次。对于这种循环,您需要知道需要循环多少次。

或者,您可以使用 while 循环进行循环,直到满足某些条件:

while (someConditionNotYetMet) {
    //all those webdriver actions
}

【讨论】:

  • 它不起作用,它执行以下段落,发出错误 Unable to locate element : 'driver.findElement(By.xpath("/html/body/center/table/tbody/tr[ 2]/td[2]/form/table[3]/tbody/tr[17]/td/input[1]")).sendKeys(offers());'
  • @PauloSilva 那是您提供的代码。如果找不到,则该 xpath 选择器一定有问题。
  • 我不明白为什么他在迭代时没有找到表盘,因为他找到的第一遍通常会输入ID和名称,并且在重复操作时出现错误exatamento .
猜你喜欢
  • 1970-01-01
  • 2014-07-05
  • 2016-06-23
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
相关资源
最近更新 更多