<p>关于您的用例的更多细节将有助于我们构建一个更规范的答案。但是,所需的元素与CSS<a href="https://www.w3schools.com/css/css_pseudo_elements.asp" rel="nofollow noreferrer">pseudo-element</a>一起应用</p>
<p>通常<a href="https://stackoverflow.com/questions/57449375/how-to-send-a-date-directly-as-text-to-a-calendar-control-with-readonly-attribut/57453876#57453876">Calendar</a>元素是交互的。因此,要识别<em>日历</em>元素,您需要为<code>element_to_be_clickable()</code>引入<em>WebDriverWait</em>,您可以使用以下<a href="https://stackoverflow.com/questions/48369043/official-locator-strategies-for-the-webdriver/48376890#48376890">Locator Strategies</a>之一:</p>
<ul>
<li><p>使用<code>CSS_SELECTOR</code>:</p>
<pre><code>calendar = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "i.far.fa-calendar-alt")))
</code></pre></li>
<li><p>使用<code>XPATH</code>:</p>
<pre><code>calendar = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//i[@class='far fa-calendar-alt']")))
</code></pre></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>CSS伪元素</h2>
<p>现在,如果您的用例是提取<a href="https://css-tricks.com/almanac/selectors/a/after-and-before/" rel="nofollow noreferrer">^{<cd4>}</a>元素的content属性值,即</strong><code>Synchro : "\f073"</code></strong>,您可以使用以下解决方案:</p>
<pre><code>script = "return window.getComputedStyle(document.querySelector('.fa-calendar-alt'),':before').getPropertyValue('content')"
print(driver.execute_script(script).strip())
</code></pre>
<hr/>
<h2>参考文献</h2>
<p>有关详细讨论,请参见:</p>
<ul>
<li><a href="https://stackoverflow.com/questions/59689722/how-locate-the-pseudo-element-before-using-selenium-python/59706267#59706267">How locate the pseudo-element ::before using Selenium Python</a></li>
</ul>