【问题标题】:Selenium webdriver: Text field with default value not getting clearedSelenium webdriver:具有默认值的文本字段未清除
【发布时间】:2015-10-20 21:53:29
【问题描述】:

我必须在表单的文本字段中输入日期。默认情况下,文本字段填充有当前日期。所以我使用

清除了该字段
    driver.findElement(By.xpath(OR.getProperty(object))).clear();
    driver.findElement(By.xpath(OR.getProperty(object))).sendKeys(date);

它在一些迭代中运行良好。但是在连续循环模式下,清除功能不起作用。简而言之,这将使该字段保持当前日期。 我正在使用 selenium web 驱动程序和 firefox

【问题讨论】:

  • OR.getProperty(object)) 调用它会得到什么?如果您需要帮助,请提供正确的 HTML 源代码
  • driver.findElement(By.xpath("//input[@id='IDOFINPUT']")).clear();
  • 你说清除功能不起作用怎么办?您输入的新日期会附加到输入字段中的当前日期吗?
  • 该网站的链接将是最有帮助的。除此之外,您可以尝试发送 CTRL+A 命令,然后使用.sendKeys() 覆盖当前日期。如果无法查看该网站,在这种情况下很难提供帮助。
  • 对延迟回复表示歉意。 OR.getProperty(object)) 是对象存储库。简而言之,定位器可以是 xpath 或 id 或任何有效的 webdriver 定位器

标签: firefox selenium webdriver


【解决方案1】:

在循环中,您可能会在日期设置之前面临清除,因此请避免这种情况,您应该在清除文本字段中的日期之前添加一些等待。最简单的方法是添加sleep,但更好的方法是添加wait until。见下文:

Thread.sleep(1000);
driver.findElement(By.xpath(OR.getProperty(object))).clear();
driver.findElement(By.xpath(OR.getProperty(object))).sendKeys(date);

您应该在文本框中找到 xpath/css 选择器,然后等待它加载:

WebDriverWait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//* ...")));
driver.findElement(By.xpath(OR.getProperty(object))).clear();
driver.findElement(By.xpath(OR.getProperty(object))).sendKeys(date);

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多