selenium webdriver - 填写表格

时间:2018-02-13 13:16:27

标签: java selenium-webdriver

我有一个表(7列x 6行),其中第7列是每行中1-6个单元格的总数。

我必须填写整个表,我只使用sequence:driver.findElement ...,element.click(); element.sendKeys(“严格数值”);

问题是,有时(cca 1/3运行)总计列中的单元格计算不正确(或根本不计算事件)。 手动填写表格时,所有总计都是正确的。在单元格1到6中输入一些值并进行任何单击后计算总数。我在每行输入第六个值后添加了一个额外的点击,但没有成功。

我还尝试在总细胞上显式等待预期条件,错误在超时后仍然存在。甚至Thread.sleep(1000);在输入第六个值之后没有解决问题。任何想法,如何填写表格并获得正确的总数?感谢

1 个答案:

答案 0 :(得分:0)

我有点绝望,从一开始就开始了。比较想的是我不需要点击单元格来填充它(在html源代码中进行了一些更改之前没有工作)。所以我将代码缩减到了这个:

WebElement L3_C1 = driver.findElement(By.xpath("//input[contains(@class,'cell A1_Number_Of_Foos')]"));
L3_C1.sendKeys("3,00");
WebElement L3_C2 = driver.findElement(By.xpath("//input[contains(@class,'cell A2_Number_Of_Foos')]"));
L3_C2.sendKeys("3,00");
WebElement L3_C3 = ... etc.

接下来我构建填充所有细胞:

String[] rowId_DaP = {A BUNCH OF XPATHS};
private WebElement FE_DaP(String rowId_DaP) {return driver.findElement(By.xpath("//input[contains(@class,'rowId_DaP')]"));}
for (String rowId_DaP: rowId_DaP) {WebElement cell = FE_DaP(rowId_DaP);cell.sendKeys("3,00");

所有总数在100%运行中都是正确的,测试甚至更快。

一个简单的结论:除非真的有必要,否则不要执行任何操作。