获得元素的祖父类 - Python Selenium

时间:2016-02-12 02:28:24

标签: python selenium xpath selenium-webdriver selenium-chromedriver

我正在编写一个抓取职称的Python脚本。列表类中作业标题的示例如下所示:

Job Title ex.

要抓住任何关键字,例如夏天,或者在这种情况下我单独抓住这个标题,我使用的xpath看起来像这样:

    temp = web.find_elements_by_xpath("//*[contains(text(), 'Summer 2016 Co-op - Software Test Engineer Intern')]")

我想抓住显示它的位置的文本,而不是试图抓住它,因为每个工作都会在我的程序中发生变化。基本上我想抓住祖父类并选择包含作业位置的div类(或者只是抓住同一父类中的其他元素),但是,使用带有“..”和

的xpath
web.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&amp;mode=profile&amp;id=c2c0dd779fe969740566778ee0816177&amp;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&amp;id=3b11ddb0571c6c4908b2cca98804ec00&amp;s=jobs&amp;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&amp;ss=list&amp;mode=profile&amp;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&amp;id=3b11ddb0571c6c4908b2cca98804ec00&amp;s=jobs&amp;ss=jobmatches" class="ListPrimaryLink">Summer 2016 Co-op - Software Test Engineer Intern</a>** 

如何进入最高的父类(列表)或甚至获取其他div类?

1 个答案:

答案 0 :(得分:0)

不是使用只选择a标记的xpath,而是可以使用带有元素祖先的xpath(例如li)。

//*[contains(text(), 'Summer 2016 Co-op - Software Test Engineer Intern')]/ancestor::li[contains(@id, 'row_')]