<p>要从<em>文本节点</em>提取<em>文本</em>,必须为<code>visibility_of_element_located()</code>诱导<a href="https://stackoverflow.com/questions/49775502/webdriverwait-not-working-as-expected/49775808#49775808">WebDriverWait</a>,可以使用以下解决方案:</p>
<ul>
<li><p>使用<code>XPATH</code>和<code>splitlines()</code>:</p>
<ul>
<li><p>要提取<em>消息1:</em>:</p>
<pre><code>print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//body/p[@class='pclass']"))).get_attribute("innerHTML").splitlines()[1])
</code></pre>
</li>
<li><p>提取收到的<em>:214-2342-234</em>:</p>
<pre><code>print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//body/p[@class='pclass']//span"))).text)
</code></pre>
</li>
<li><p>要提取<em>这是它包含的第1条消息</em>:</p>
<pre><code>print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//body"))).get_attribute("innerHTML").splitlines()[7])
</code></pre>
</li>
</ul>
</li>
<li><p>使用<code>XPATH</code>和<em>子节点</em>:</p>
<ul>
<li><p>要提取<em>消息1:</em>:</p>
<pre><code>print(driver.execute_script('return arguments[0].childNodes[2].textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//body/p[@class='pclass']")))).strip())
</code></pre>
</li>
<li><p>提取收到的<em>:214-2342-234</em>:</p>
<pre><code>print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//body/p[@class='pclass']//span"))).text)
</code></pre>
</li>
<li><p>要提取<em>这是它包含的第1条消息</em>:</p>
<pre><code>print(driver.execute_script('return arguments[0].childNodes[3].textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "body")))).strip())
</code></pre>
</li>
</ul>
</li>
<li><p><strong>注意</strong>:您必须添加以下导入:</p>
<pre><code> from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
</code></pre>
</li>
</ul>
<hr/>
<h2>参考资料</h2>
<p>您可以在以下内容中找到一些相关的详细讨论:</p>
<ul>
<li><a href="https://stackoverflow.com/questions/62445850/how-to-retrieve-partial-text-from-a-text-node-using-selenium-and-python/62446227#62446227">How to retrieve partial text from a text node using Selenium and Python</a></li>
</ul>