【发布时间】:2020-01-04 05:25:21
【问题描述】:
我有一个动态生成的 iframe 元素(输入类型),需要将其存储为变量。 iframe 看起来像:
<iframe id="iframe39993" class="green tea" src="...foo">
#document
<!doctype html>
<html>
<head>...</head>
<body style>
<div id="layout" class=container>
<div class="row">
<input class="required" type="number">
</div>
</div>
</body>
</html>
我正在使用 Selenium/Webdriver 来执行此操作:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.switch_to.frame(driver.find_element_by_class_name('green tea'))
content = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//* [@id='layout']/div[1]/input")))
print(content.text)
driver.switch_to.default_content()
driver.quit()
由于某种原因,我只得到一个换行符(空字符串)作为输出。我很确定,xpath 应该是正确的,但不能打印(或存储)iframe 元素。 iframe 元素已经包含我需要访问的用户输入数据。有人有什么想法吗?
【问题讨论】:
-
错误是什么?
-
更新了问题。出现拼写错误,重新检查代码后,我得到一个没有任何错误的换行符。
-
我也可以使用 ActionChains 复制 iframe 内容,但只能将它们粘贴到浏览器中。不幸的是,需要将输入作为变量。