我有一个for循环,不断循环回网站填写并提交一个搜索框,其中包含列表中的下一个字符串。
例如,如果列表包含[abcd,efgh,ijkl ....],第一个循环将发送abcd,第二个循环将发送efgh等。
目前循环正确发送第一个字符串,但是在之后的每个循环中,发送的字符串被添加到前一个字符串。因此,不是第二次循环,而是abcdefgh。
如何清除按键以便我可以发送单个字符串?这就是我现在所拥有的:
for(String value : List){
driver.get(Link);
Actions actions = new Actions(driver);
WebElement input_field = driver.findElement(By.id("txtBoxSearch"));
actions.moveToElement(input_field);
actions.click();
actions.sendKeys(value);
actions.build().perform();
WebElement submit_key = driver.findElement(By.xpath("//button[contains(@title, 'Search')]"));
actions.moveToElement(submit_key);
actions.click();
actions.build().perform();
}
答案 0 :(得分:0)
您需要在写入值之前清除文本框的内容
for(String value : List){
driver.get(Link);
Actions actions = new Actions(driver);
WebElement input_field = driver.findElement(By.id("txtBoxSearch"));
input_field.clear();
actions.moveToElement(input_field);
actions.click();
actions.sendKeys(value);
actions.build().perform();
WebElement submit_key = driver.findElement(By.xpath("//button[contains(@title, 'Search')]"));
actions.moveToElement(submit_key);
actions.click();
actions.build().perform();
}
答案 1 :(得分:0)
以下是您的问题的答案:
通过操作类实例在所需元素上调用click()
方法后,接下来使用操作类实例clickAndHold
,发送CONTROL A
然后发送新文本{{ 1}}到表单控件覆盖以前的文本如下:
DebanjanB
如果这回答你的问题,请告诉我。