需要使用python检索selenium webdriver元素文本的帮助吗

2024-06-26 14:00:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python、Selenium和Chrome阅读网页,但似乎无法检索所搜索元素的内容。 任何帮助和指点都是有用的。你知道吗

下面是我所写代码的摘录


    thElements = header.find_elements(By.XPATH, "th")

    iPos = 1
    headArray = ['Risk Category']

    for thElement in thElements:
        iPos = iPos + 1
        print(thElement.text)
        print(thElement.get_attribute('innerHTML'))
        headArray.append(thElement.text.strip())

innerHTML打印为(我只显示检索到的7个元素中的5个)。总共检索到7个。)

<div class="dataTables_sizing" style="height:0;overflow:hidden;">
    <a href="javascript:void(0);" onclick="docmentView('TSK6277482')">28-Dec-2016</a>
</div>
<div class="dataTables_sizing" style="height:0;overflow:hidden;">
    <a href="javascript:void(0);" onclick="docmentView('TSK6526019')">15-Jun-2017</a>
</div>
<div class="dataTables_sizing" style="height:0;overflow:hidden;">
    <a href="javascript:void(0);" onclick="docmentView('TSK7087944')">19-Oct-2017</a>
</div>
<div class="dataTables_sizing" style="height:0;overflow:hidden;">
    <a href="javascript:void(0);" onclick="docmentView('TSK7537802')">25-May-2018</a>
</div>
<div class="dataTables_sizing" style="height:0;overflow:hidden;">
    <a href="http://xxx.comp.org/project/secure/sap/forms/isr?stage=IMP&amp;projId=P127866" target="_new">31-Jan-2019</a>
</div>

打印(元素.text)什么都没给我。我希望在打印时可以在<a>标记中获得日期元素.text你知道吗

谢谢你的指点。你知道吗


Tags: textdiv元素stylejavascripthiddenclassdatatables
2条回答

通过进一步的搜索,我了解到元素所在的div元素是隐藏的(style属性是这样说的)。可以使用访问隐藏元素的文本element.get\u属性('textContent'),而不是元素.text. 你知道吗

感谢益增.me/2014/04/08/…为了获取信息。更多示例请访问同一网站。你知道吗

完整性所需的代码是:

    thElements = header.find_elements(By.XPATH, "th")

    iPos = 1
    headArray = ['Risk Category']

    for thElement in thElements:
        iPos = iPos + 1
        print(thElement.get_attribute('textContent'))
        print(thElement.get_attribute('innerHTML'))
        headArray.append(thElement.text.strip())

从我所看到的情况来看,您可以定位^{} attribute包含docmentView文本的^{}元素(最好获取innerText属性值),而不是固定在^{}元素上,相关代码如下所示:

links = driver.find_elements_by_xpath("//a[contains(@onclick, 'docmentView')]")

for link in links:
    print(link.get_attribute("innerText"))

如果需要元素定位器只匹配th子元素,可以选择descendant轴:

//th/descendant::a[contains(@onclick, 'docmentView')]

更多信息:

相关问题 更多 >