在使用Python+Selenium时,对于被包含在iframe中的元素,我们需要先切换到iframe,然后才能查找其中的元素。下面是使用Python+Selenium实现遍历iframe并查找指定元素的示例代码:
```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome() # 启动Chrome浏览器
# 打开要测试的网页
driver.get('
http://www.example.com')
# 查找以“iframe”为tag name的元素
iframes = driver.find_elements(By.TAG_NAME, 'iframe')
# 遍历所有的iframe
for iframe in iframes:
# 切换到当前iframe
driver.switch_to.frame(iframe)
try:
# 等待要查找的元素加载完成
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, 'element_id'))
)
# 你的逻辑代码,比如获取元素的文本内容
print(element.text)
except:
# 没有找到元素,继续下一个iframe
continue
# 切换回父级iframe或者主文档框架
driver.switch_to.default_content()
# 关闭浏览器
driver.quit()
```
以上代码中,我们首先通过find_elements()方法查找所有的iframe元素,并依次遍历,然后通过switch_to.frame()方法切换到当前的iframe。接着,使用WebDriverWait()方法等待要查找的元素加载完成,并使用presence_of_element_located()方法指定要查找的元素的查找方式(这里使用的是id为“element_id”的元素),其余逻辑代码参照注释说明。最后使用switch_to.default_content()方法返回主文档框架或父级iframe。