<h2><a href="https://css-tricks.com/almanac/selectors/a/after-and-before/" rel="nofollow noreferrer">Pseudo Elements</a></h2>
<p>CSS<a href="https://www.w3schools.com/css/css_pseudo_elements.asp" rel="nofollow noreferrer">pseudo-element</a>用于为元素的指定部分设置样式。它可用于:</p>
<ul>
<li>设置元素的第一个字母或行的样式</li>
<li>在元素内容之前或之后插入内容</li>
</ul>
<hr/>
<h2>::之前</h2>
<p><a href="https://stackoverflow.com/questions/59689722/how-locate-the-pseudo-element-before-using-selenium-python/59706267#59706267">^{<cd1>}</a>在HTML中的任何其他内容之前而不是之后插入内容。使用其中一个的唯一原因是:</p>
<ul>
<li>您希望生成的内容在位置上位于元素内容之前</李>
<li><code>::after</code>内容在源代码顺序中也是“在”之后的,因此如果自然地堆叠在彼此的顶部,它将位于<code>::before</code>的顶部</李>
</ul>
<hr/>
<h2>这个用例</h2>
<p>要使用<a href="https://stackoverflow.com/questions/54459701/what-is-selenium-and-what-is-webdriver/54482491#54482491">Selenium</a>和<em>Python</em>提取<code><a></code>标记内的所有文本,必须为<code>visibility_of_all_elements_located()</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>driver.get("https://nthqibord.com/2019/08/15/pemimpin-pkr-pertahan-tun-mahathir/")
print([my_elem.text for my_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "a#main-category-menu[href='/shop/women/'] + ul.top-nav-border ul li>a")))])
</code></pre></li>
<li><p>使用<code>XPATH</code>:</p>
<pre><code>driver.get("https://nthqibord.com/2019/08/15/pemimpin-pkr-pertahan-tun-mahathir/")
print([my_elem.text for my_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.XPATH, "//a[@id='main-category-menu' and @href='/shop/women/']//following::ul[@class='top-nav-border']//ul//li/a")))])
</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>