【发布时间】:2018-04-06 07:47:09
【问题描述】:
我正在用 Cucumber 和 Selenium 编写一些自动化测试。目前,我正在尝试编写一个函数来选择日历选择器中传递的日期。我需要使用日历弹出时显示的当前年份来确定一些逻辑。
但是,我终其一生都无法找出正确的语法来将当前年份的值导入 Java 以进一步使用它。第一个 div 是可靠的非歧义标签,通过它我可以导航到我需要使用的日历,我什至可以在浏览器开发控制台中以某种方式选择年份(在本例中为“2017”),但我不能将其传递给 Java。
相关 HTML:
<ib-selector class="float-rg fblock40" ng-if="!hideYearSelector" initial-label="dateYear" next-handler="nextYear()" prev-handler="prevYear()">
<div class="calendar-month-year">
<span class="arrow-cal-left" ng-click="prevHandler()" role="button" tabindex="0">
</span> 2017
<span class="arrow-cal-right" ng-click="nextHandler()" role="button" tabindex="0">
</span>
</div>
</ib-selector>
提取年份的最新尝试:
String currentYear = driver.findElement(By.xpath("//ib-selector[@initial-label='dateYear']/div/text()")).getAttribute("data");
它产生的异常:
org.openqa.selenium.InvalidSelectorException: invalid selector: The result of the xpath expression "//ib-selector[@initial-label='dateYear']/div/text()" is: [object Text]. It should be an element.
【问题讨论】:
-
html 与您的 xpath 无关
标签: java html selenium xpath cucumber