【发布时间】:2019-03-27 02:58:05
【问题描述】:
我正在使用 Selenium 为内部 Intranet 开发 VBA 网络抓取工具,但我无法提取几块。我在使用 CSS 访问大部分数据方面运气不错,但也遇到过几种情况,其中类是常用的,并且某些元素的位置可能会有所不同。
<div class="col-xs-12 col-sm-4 header-section header-list">
<li>
<i class="hire-icon-contactcard-outline header-list-icon"></i>
<span class="modal-link ng-binding" data-ng-click="createContactCardModal()">View full contact card</span>
</li>
<li>
<i class="hire-icon-email-outline header-list-icon"></i>
<!-- ngIf: !candidate.hasEmailAddress() -->
<!-- ngIf: candidate.hasEmailAddress() -->
<a href="mailto:testemail@gmail.com" ng-if="candidate.hasEmailAddress()" class="ng-binding ng-scope">testemail@gmail.com</a>
<!-- end ngIf: candidate.hasEmailAddress() -->
</li>
<li>
<i class="hire-icon-phone-solid header-list-icon"></i>
<!-- ngIf: !candidate.hasPhoneNumber() -->
<!-- ngIf: candidate.hasPhoneNumber() -->
<span ng-if="candidate.hasPhoneNumber()" class="ng-binding ng-scope">123-456-7898</span>
<!-- end ngIf: candidate.hasPhoneNumber() -->
</li>
我一直在尝试以下各种方法,感觉有点接近,但知道我的代码可能已关闭。
CandidateEmail = bot.FindElementByCss("[class$='hire-icon-email-outline header-list-icon']/following-sibling::[@class='ng-binding ng-scope'])")
CandidateEmail = bot.FindElementByXPath("//i[@class='hire-icon-email-outline header-list-icon']/following-sibling::a[@class='ng-binding ng-scope'])")
知道我可能缺少什么吗?此外,是否可以简单地让 selenium 选择 ngIf 元素 - 例如
提前感谢您的时间和洞察力!非常感谢!
【问题讨论】:
标签: excel vba selenium web-scraping