Selenium 代码等待 CSS 类可用并在 Python 中提取文本
Posted
技术标签:
【中文标题】Selenium 代码等待 CSS 类可用并在 Python 中提取文本【英文标题】:Selenium code to wait until CSS class is available and extract text in Python 【发布时间】:2015-05-24 13:41:10 【问题描述】:我在这里查看了一些相关的问题,但没有一个问题涉及找到一个类,然后提取属于该类的文本。
我的目标是自动化进入一个查找电子邮件、名字和域名的网站的过程。到目前为止,我有代码可以自动输入名称和域,然后单击“搜索”,但我的问题是等待结果加载。我基本上希望我的代码等到 CSS 类“one”出现,然后提取与该类相关的文本,例如对于以下 sn-p:
<h3 class="one">Success</h3>
提取文本“Success”。
【问题讨论】:
【参考方案1】:您需要explicitly wait 使元素可见:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
h3 = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "h3.one")))
print h3.text
【讨论】:
我收到此错误:文件“/Users/sinaastani/AskNorbert/finder.py”,第 18 行,在<h3 class="one">Success</h3>
吗?谢谢。
页面上有iframe,但元素确实是这样表示的
@ohbrobig iframes 是您当前的问题。您需要切换到 iframe,然后等待一个元素:driver.switch_to.frame('frame_id_or_name')
。以上是关于Selenium 代码等待 CSS 类可用并在 Python 中提取文本的主要内容,如果未能解决你的问题,请参考以下文章