如何在Python中通过selnium定位网页中链接的href值

时间:2018-06-11 19:01:47

标签: python selenium

我有一个包含1行表的网页,它包含一个链接。我想获得链接的href。

<table class="Table__table___3G1SW">
    <caption>My Cpation</caption>
    <colgroup><col class="Table__col-12___1AM3h"></colgroup>
    <thead>
        <tr><th scope="col"> Name, XYZ, Hel</th></tr>
    </thead>
    <tbody><tr><td><div><div><a href="/staff/312577">
        <div><!-- react-text: 535 -->KLMNOP<!-- /react-text --><!-- react-text: 536 -->,<!-- /react-text --><!-- react-text: 537 --> <!-- /react-text --><!-- react-text: 538 -->ABCDEF<!-- /react-text --><!-- react-text: 539 --> <!-- /react-text --><!-- react-text: 540 -->B<!-- /react-text --></div></a></div><p>HOMNTH &amp; XYZ</p><div><div><div>LLLMMMNN</div><div></div><div><!-- react-text: 547 -->NEW GBEL,<!-- /react-text --><!-- react-text: 548 --> <!-- /react-text --><!-- react-text: 549 -->NP<!-- /react-text --><!-- react-text: 550 --> <!-- /react-text --><!-- react-text: 551 -->085362!-- /react-text --></div></div></div></div></td></tr>
    </tbody>
</table>

我想获得/staff/312577的值,我尝试使用xpath但是我没有成功

elm = browser.find_element_by_xpath('//table[@class="Table__table___3G1SW"]//a[]')

我知道我犯了一个错误,因为我没有指定a值,但我不确定如何隔离href值。

2 个答案:

答案 0 :(得分:1)

试试这个我觉得它会起作用,你在xpath结束时有一个错误,需要//a而不是//a[],并且在这个简单的使用get_attribute()方法之后

elm = browser.find_element_by_xpath('//table[@class="Table__table___3G1SW"]//a')
print(elem.get_attribute('href'))

<强>输出

'/staff/312577'

答案 1 :(得分:1)

要提取href属性的值,即 / staff / 312577 ,您可以使用以下定位器策略

myText = driver.find_element_by_xpath("//table[contains(@class,'Table__table___')]/caption[contains(.,'My Cpation')]//following::tbody[1]/tr/td//a").get_attribute("href")