在使用python检索硒webdriver元素文本时需要帮助

时间:2019-07-14 06:07:26

标签: python python-2.7 selenium selenium-chromedriver

我正在尝试使用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>

print(thElement.text)没有给我任何东西。我希望在打印thElement.text

时能在<a>标记内获得日期。

感谢对此的任何指点。

2 个答案:

答案 0 :(得分:0)

进一步的搜索使我了解到thElement属于其一部分的div元素是隐藏的(style属性如此。)。可以使用thElement.get_attribute('textContent')而非thElement.text访问隐藏元素的文本。

感谢yizeng.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())

答案 1 :(得分:0)

根据我所看到的,而不是粘在th元素上,您可以找到a包含docmentView文本的onclick attribute元素(最好提取{{3 }}属性值),相关代码如下:

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

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

如果您需要元素定位器仅匹配th个子元素,则可以使用innerText轴:

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

更多信息: