Python Selenium日期选择器

时间:2017-06-09 10:20:39

标签: python selenium datepicker

我试图在日历上获取当前活跃的一天。 当我使用它时:

driver.find_element_by_xpath("//a[@class='ui-state-default ui-state-highlight ui-state-active']")

它无法找到元素

当我使用它作为参数时,它可以工作

driver.find_element_by_xpath(".//*[@id='ui-datepicker-div']/table/tbody/tr[2]/td[6]/a")

但我相信这是静态的,这就是为什么我不能用它来寻找活跃的一天。

你能帮助我吗?

<!DOCTYPE html>
<html>
<head>
<body onload="if(typeof(window.parentOpeningScript)=='function'){ parentOpeningScript(); };">
<script type="text/javascript">
<div id="floatingMenuDiv" data-role="header" data-id="persistheader" data-position="fixed">
<div id="printPageHeader" class="printOnly">
<div id="primaryContainer" class="clr" style="margin-top: 100px;">
<div id="copyrightMessage" class="clr">
<ul id="ui-id-1" class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all" tabindex="0" style="display: none;"></ul>
<div id="ui-datepicker-div" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" style="position: absolute; top: 278.767px; left: 443.133px; z-index: 1; display: block;">
<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all">
<table class="ui-datepicker-calendar">
<thead>
<tbody>
<tr>
<tr>
<td class=" ui-datepicker-week-end " data-handler="selectDay" data-event="click" data-month="5" data-year="2017">
<td class=" " data-handler="selectDay" data-event="click" data-month="5" data-year="2017">
<td class=" " data-handler="selectDay" data-event="click" data-month="5" data-year="2017">
<td class=" " data-handler="selectDay" data-event="click" data-month="5" data-year="2017">
<td class=" " data-handler="selectDay" data-event="click" data-month="5" data-year="2017">
<td class=" ui-datepicker-days-cell-over ui-datepicker-current-day ui-datepicker-today" data-handler="selectDay" data-event="click" data-month="5" data-year="2017">
<a class="ui-state-default ui-state-highlight ui-state-active ui-state-hover" href="#">9</a>
</td>
<td class=" ui-datepicker-week-end " data-handler="selectDay" data-event="click" data-month="5" data-year="2017">
</tr>
<tr>
<tr>
<tr>
</tbody>
</table>
<div class="ui-datepicker-buttonpane ui-widget-content">
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

在没有看到原始HTML代码的情况下,这是一个推定答案,但应该有效:

driver.find_element_by_xpath(".//*[@id='ui-datepicker-div']/table/tbody/tr/td/a[contains(@class, 'ui-state-active')]")

这将在该表中的任何行中找到第一个锚元素。您可以进一步缩小范围,但这应该可以实现您的目标。