java - 如何清除日历框中输入的默认值并发送新的出生日期

标签 java selenium automation cucumber bdd

我想在日历框中发送Keys,但该框中有一个默认值

我尝试在 sendKeys 之前清除它,但它不起作用

我的代码:

Actions actions = new Actions(driver);
                            actions.moveToElement(driver.findElement(By.xpath("//*[@id='dateOfBirth']")));
                            actions.click();
                            actions. clear();
                            Thread.sleep(3000);     
                            actions.sendKeys("07-12-2018");
                            actions.sendKeys(Keys.TAB);
                        actions.build().perform();

请帮我如何清除该框

HTML 代码:

<input type="text" value="07-14-1993" id="dateOfBirth" class="react-datepicker-ignore-onclickoutside">

最佳答案

您可以尝试代替操作:

WebElement input = driver.findElement(By.xpath("//*[@id='dateOfBirth']"));
input.click();
input.clear();
input.sendKeys("07-12-2018");
input.sendKeys(Keys.TAB); // I don't know why you need TAB, but since you have it in your code

Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(By.xpath("//*[@id='dateOfBirth']")));
actions.click();
actions.build().perform();
WebElement input = driver.findElement(By.xpath("//*[@id='dateOfBirth']"));
input.clear();
input.sendKeys("07-12-2018");
input.sendKeys(Keys.TAB);

Actions actions = new Actions(driver);                        
actions.moveToElement(driver.findElement(By.xpath("//*[@id='dateOfBirth']")));
actions.click();
actions.sendKeys(Keys.BACK_SPACE).sendKeys(Keys.BACK_SPACE).sendKeys(Keys.BACK_SPACE).sendKeys(Keys.BACK_SPACE).sendKeys(Keys.BACK_SPACE).sendKeys(Keys.BACK_SPACE).sendKeys(Keys.BACK_SPACE).sendKeys(Keys.BACK_SPACE).sendKeys(Keys.BACK_SPACE).sendKeys(Keys.BACK_SPACE);
Thread.sleep(3000);     
actions.sendKeys("07-12-2018");
actions.sendKeys(Keys.TAB);
actions.build().perform();

或使用 JavaScript:

WebElement input = driver.findElement(By.xpath("//*[@id='dateOfBirth']"));
JavascriptExecutor js=(JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute(value, '07-12-2018')", input);

关于java - 如何清除日历框中输入的默认值并发送新的出生日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341599/

相关文章:

ruby - Selenium 在 Ruby capybara 测试中指定 chromedriver.exe 的路径

google-chrome - 如何停止 Chrome 的选择证书窗口?

java - 如何使用selenium java向左和向右移动 slider

python - 无法让我的脚本有条件地等待

java - iText 7.0.5 : How to combine PDF and have existing bookmarks indented under new bookmarks for each document?

java - 用java在selenium中切换窗口

python - 等待元素中的文本发生更改

javascript - WebElement 位置与 window().getSize() 的预期值不匹配

java - 在 selectItem 的第一种情况下使用 startActivity 时抽屉导航不工作

java - 比较几乎所有字段都相同的对象