1. 程式人生 > >【記錄】selenium+xpath 文字資訊定位,獲取父節點屬性

【記錄】selenium+xpath 文字資訊定位,獲取父節點屬性

頁面部分程式碼如下

<td id="reportHeader47" header-class="'header-report-name'" data-title="'label.report'|i18n" sortable="'name'" filter="{ 'name': 'text' }" ng-click="onReportNameClick(report)" data-title-text="Report Name">
<i ng-class="{ 'icon-down-arrow':reportTableModel.editId===report.id, 'icon-right-arrow':reportTableModel.editId!==report.id}" class="icon-down-arrow" style=""></i>
<span class="report-name-text ng-binding" uib-tooltip="" tooltip-append-to-body="true">
2018-01-11 10:03
</span>

由於id=”reportHeader47”中的數字47不斷在變化。更加此id定位元素,需要將數字提取出來。

ele = self.dr.find_element_by_xpath( '//span[contains(text(),"{}")]/..'.format(self.now) )
print(ele.get_attribute('id'))

通過xpath語法//span[contains(text(),”{}”)]定位到帶有當前時間的2018-01-11 10:03元素。這裡格式化字串時,{}要加雙引號

再通過/.. 找到父元素。

ele.get_attribute(‘id’)得到id值,即reportHeader47

另外,self.dr.page_source可以輸出整個頁面的html,可以和Beautifulsoup結合起來使用。