【问题标题】:Selenium : Unable to inspect element on datepicker from chrome/firefoxSelenium:无法从 chrome/firefox 检查日期选择器上的元素
【发布时间】:2019-07-04 14:55:02
【问题描述】:

我在页面上有一个 DatePicker。当我点击它时,Datepicker 出现了。但我无法检查日期选择器上的任何日期。

请在下面找到附加的 HTML 代码

<!DOCTYPE html>
<html lang="en" dir="ltr">
<body class="toolbar-tray-open toolbar-horizontal toolbar-fixed toolbar- 
loading">
<div class="form-item__field js-form-item form-item js-form-type-date form- 
item-changed js-form-item-changed">
<input type="date" data-drupal-selector="edit-changed" data-drupal-date- 
format="Y-m-d" id="edit-changed" name="changed" value="" size="30" 
class="form-date form-item__element--date form-item__element" />
</body>
</html>

复制上面的代码并将其保存为 datePicker.html,然后在任何浏览器中打开。 点击 DatePicker 字段并尝试检查

目标: 应该能够使用 selenium java 中的日期选择器检查元素并选择日期 (要么) 应该能够使用 selenium java 验证日期选择器是否显示/存在

注意: 我能够将数据直接传递到日期框。但我的目标是使用日期选择器

截图

链接

<!DOCTYPE html>
<html lang="en" dir="ltr">
<body class="toolbar-tray-open toolbar-horizontal toolbar-fixed toolbar-loading">
<div class="form-item__field js-form-item form-item js-form-type-date form-item-changed js-form-item-changed">
<input type="date" data-drupal-selector="edit-changed" data-drupal-date-format="Y-m-d" id="edit-changed" name="changed" value="" size="10" class="form-date form-item__element--date form-item__element" />
</body>
</html>

【问题讨论】:

  • 你能分享日期选择器必须看到的网址或屏幕截图吗
  • @akshaypatil 添加截图和sn-p
  • 是的,我看到你找到了更好的解决方案
  • 为什么您觉得需要测试实际的日期选择器本身?该级别的测试通常由日期选择器开发人员自己在单元测试中完成,而不是自动化测试。
  • 我被要求自动化它。由于 datepicker 是使用属性 type="date" 开发的。它没有Dom。所以我只是使用发送键到文本框

标签: java selenium selenium-chromedriver


【解决方案1】:

如果要检查 DatePicker 是否存在,请传递 datepicker 标题的定位器(例如:月份名称)并使用 if 条件

// Validate the title, so that you can find whether the date picker is present or not 
If(monthname.isdisPlayed()) {

....
}

首先找到它是什么类型的日期选择器。如果是jquery日期选择器,你可以检查并处理它。

日历上方是一个 jquery 日期选择器!

【讨论】:

  • 我认为我的不是 jquery 日期选择器。附上截图
【解决方案2】:

所以我已经完成了相同的日期选择器操作,但前端是用 Angular js 制作的,我将与您分享代码

所以我首先单击输入字段,然后使用以日期格式发送文本传递日期,我将向您显示代码..

 public static WebElement txtFRegEndDate(WebDriver driver)
    {
        WebElement element = null;
        WebDriverWait wait = new WebDriverWait(driver, 50);
        element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='FarmerEndDate']")));
        return element;
    }

 WebElement txtFRegEndDate = FrDateSetPage.txtFRegEndDate(driver);
 txtFRegEndDate.clear();
 Thread.sleep(2000);
 txtFRegEndDate.sendKeys(datArr[8].toString());

在我的情况下,这对我有用,而且上面的代码是在 java 中,所以你可以在 python 中这样做,如果你有任何疑问,请告诉我们

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2017-10-03
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多