从selenium中的特定类复制文本

2024-04-27 02:51:50 发布

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

我创建了第一个用于页面抓取的python脚本-->;以便访问网页、登录、重定向到另一个页面(导航),然后从特定部分复制文本。在

当我尝试以下方法时,效果很好:

copiedText = driver.find_element_by_id("random").text
print(copiedText )

但它有点复杂,因为我要复制的文本的div没有ID,它有一个类,但不是唯一的。当我在Chrome中复制xPath时,它会返回如下内容:

^{pr2}$

每天都不一样。数字125可能不同,具体取决于页面中显示的数据(HTML表中的更多行)。在

所以,作为一个计划B,我在从Chrome复制CSS选择器之后尝试使用CSS选择器。在

但我得到一个错误:

消息:没有此类元素:无法定位元素:

有没有可能Chrome没有给我正确的选择?如何将outerHTML转换为CSS选择器,以便百分之百确定它是正确的?在

外部TML如下所示:

<div class="nxm-td col-total text-right" style="">
    <div class="summary-total">
        <span class="summary number">7,363.31</span>
    </div>
</div>

从Chrome dev tools复制后的选择器如下:

#media-grid-right > div.nxm-tr.nxm-drop.media-plan-drop.mpSummary.summary-row.no-filter > div.nxm-td.col-total.text-right

升级版

下面的操作很好:Dates = wait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#summary > li:nth-child(1)"))).text这个命令没有返回错误,但是我在cmd中没有看到任何文本:copiedText = wait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#media-grid-right > div.nxm-tr.nxm-drop.drop.mpSummary.summary-row.no-filter > div.nxm-td.col-total.text-right > div > span.summary.number"))).text


Tags: text文本rightdivdriver选择器页面element
1条回答
网友
1楼 · 发布于 2024-04-27 02:51:50

尝试按类名查找所需节点:

copiedText = driver.find_element_by_css_selector("span.summary.number").text
print(copiedText)

另请注意,节点可以动态生成,因此您可能需要等到它出现在DOM中:

^{pr2}$

相关问题 更多 >