6

我正在尝试用碎片填写登录表单上的字段。当我检查呈现的页面时,我看到用户名输入框有一个标签和一个名称“u”。如何从 splinter 填写此字段?我尝试了以下方法:

from splinter import Browser

url = "http://www.weiyun.com/disk/login.html"
browser = Browser('firefox')
browser.visit(url)
browser.fill("u", "foo@bar.com")
print "done"

但是根据返回的错误没有这个字段:

ElementDoesNotExist: no elements could be found with name "u"

如何使用 splinter 在这样的页面上填写输入字段?

4

1 回答 1

3

问题是您的表单位于iframe, 用于get_iframe()与之交互:

with browser.get_iframe('_qq_login_frame') as iframe:
    iframe.fill("u", "foo@bar.com")

演示以显示差异:

>>> browser = Browser('firefox')
>>> browser.visit(url)
>>> browser.find_by_name('u')
[]
>>> with browser.get_iframe('_qq_login_frame') as iframe:
...     iframe.find_by_name('u')
... 
[<splinter.driver.webdriver.firefox.WebDriverElement object at 0x102465590>]
于 2014-05-26T19:19:52.233 回答