find_elements_by_xpath()未产生所需的输出python硒刮除

时间:2018-11-12 10:44:20

标签: python-3.x selenium-webdriver xpath

我正在尝试按tr类来查找.tableOne。这是我的代码:

browser = webdriver.Chrome(executable_path=path, options=options)
cells = browser.find_elements_by_xpath('//*[@class="tableone"]')

但是cells变量的输出为[],一个空数组。

这是页面的html:

<tbody class="tableUpper">
    <tr class="tableone">
        <td><a class="studentName" href="//www.abc.com"> student one</a></td>
        <td><a href="//www.abc.com/overview"> <span class="id_one"></span> <span class="long">Place</span> <span class="short">Place</span></a></td>
        <td class="hide-s">
            <span class="state"></span> <span class="studentState">student_state</span>
        </td>
    </tr>
    <tr class="tableone">..</tr>
    <tr class="tableone">..</tr>
    <tr class="tableone">..</tr>
    <tr class="tableone">..</tr>
</tbody>

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

import re

cells = browser.find_elements_by_xpath("//*[contains(local-name(), 'tr') and contains(@class, 'tableone')]")

for (e in cells):
    insides = e.find_elements_by_xpath("./td")
    for (i in insides):
        result = re.search('\">(.*)</', i.get_attribute("outerHTML"))
        print result.group(1)

此操作将获取具有类tr的所有tableone元素,然后遍历每个元素并列出所有tds。然后遍历每个td的externalHTML并剥离每个字符串以获取文本值。 我认为它还很不完善,会返回空字符串。您可能需要在最终产品中投入更多工作。