我正在编写一个抓取职称的Python脚本。列表类中作业标题的示例如下所示:
要抓住任何关键字,例如夏天,或者在这种情况下我单独抓住这个标题,我使用的xpath看起来像这样:
temp = web.find_elements_by_xpath("//*[contains(text(), 'Summer 2016 Co-op - Software Test Engineer Intern')]")
我想抓住显示它的位置的文本,而不是试图抓住它,因为每个工作都会在我的程序中发生变化。基本上我想抓住祖父类并选择包含作业位置的div类(或者只是抓住同一父类中的其他元素),但是,使用带有“..”和
的xpathweb.get_attributes('outerHTML')
仅返回当前类而不是整个列表div类。
此div类的代码如下所示:
<li class="row list-item list_rows" id="row_3b11ddb0571c6c4908b2cca98804ec00">
<div class="list-item-logo">
<a href="https://rit-csm.symplicity.com/students/index.php?s=employers&mode=profile&id=c2c0dd779fe969740566778ee0816177&ss=jobmatches"><img src="./job postings _ RIT Job Zone_files/view.php" alt="Logo" class="avatar avatar-square"></a>
</div>
<div class="list-item-body">
<div class="list-item-title">
**<a href="https://rit-csm.symplicity.com/students/index.php?mode=form&id=3b11ddb0571c6c4908b2cca98804ec00&s=jobs&ss=jobmatches" class="ListPrimaryLink">Summer 2016 Co-op - Software Test Engineer Intern</a>**
</div>
<div class="list-data-columns">
Co-op
</div>
<div class="list-data-columns">
<a href="https://rit-csm.symplicity.com/students/index.php?s=employers&ss=list&mode=profile&id=c2c0dd779fe969740566778ee0816177" class="ListPrimaryLink">Veson Nautical</a> - Boston, Massachusetts<br>Lebanon, New Hampshire
</div>
</div>
</div>
</div>
</li>
显然没有粗体显示的行是使用xpath代码行选择的行。
**<a href="https://rit-csm.symplicity.com/students/index.php?mode=form&id=3b11ddb0571c6c4908b2cca98804ec00&s=jobs&ss=jobmatches" class="ListPrimaryLink">Summer 2016 Co-op - Software Test Engineer Intern</a>**
如何进入最高的父类(列表)或甚至获取其他div类?
答案 0 :(得分:0)
不是使用只选择a
标记的xpath,而是可以使用带有元素祖先的xpath(例如li
)。
//*[contains(text(), 'Summer 2016 Co-op - Software Test Engineer Intern')]/ancestor::li[contains(@id, 'row_')]