Python 登录Zillow

Python 登录Zillow,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,嗨,不知什么原因,我无法登录zillow。我找不到要向其发送密钥的电子邮件或密码输入字段。脚本正在工作,但现在找不到元素 我正在传递一个带有URL的驱动程序对象: driver = webdriver.Firefox() driver = driver.get("http://www.zillow.com/") time.sleep(2) driver.find_element_by_id("login_opener").click() time.sleep(5) try: driver

嗨,不知什么原因,我无法登录zillow。我找不到要向其发送密钥的电子邮件或密码输入字段。脚本正在工作,但现在找不到元素

我正在传递一个带有URL的驱动程序对象:

driver = webdriver.Firefox()
driver = driver.get("http://www.zillow.com/")
time.sleep(2)
driver.find_element_by_id("login_opener").click()
time.sleep(5)
try:
    driver.find_element_by_id("email").send_keys(username)
    driver.find_element_by_id("password").send_keys(password)
    time.sleep(2)
    driver.find_element_by_id("loginSubmit").click()
except:
    try:
        time.sleep(4)
        driver.find_element_by_id("email").send_keys(username)
        driver.find_element_by_id("password").send_keys(password)
        time.sleep(2)
        driver.find_element_by_id("loginSubmit").click()
    except:
        pdb.set_trace()
        print "Cant login"
NoTouchElementException:消息:无法定位元素: {“方法”:“id”,“选择器”:“电子邮件”}Stacktrace: 在FirefoxDriver.prototype.findelement内部(file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/driver component.js:10271) 在FirefoxDriver.prototype.findElement(file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/driver component.js:10280) 在DelayedCommand.prototype.executeInternal\uh处(file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/command processor.js:12274) 在DelayedCommand.prototype.executeInternal\u(file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/command processor.js:12279) 在DelayedCommand.prototype.execute/<(file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/command processor.js:12221)

登录表单位于iframe内部。您必须切换到它的上下文:

driver.find_element_by_id("login_opener").click()
time.sleep(5)  # TODO: replace with an Explicit Wait

frame = driver.find_element_by_css_selector("iframe[src*=InlineLogin]")
driver.switch_to.frame(frame)

# now while you are in the iframe, search for the input

对我有用。

什么是错误跟踪?@DavidZemens poster.hmm这似乎不起作用。。。你有firefox驱动程序或chrome浏览器吗?出于某种原因,我得到了相同的错误?当我调试iframe时,它显示为nothing(Pdb)驱动程序。通过xpath('//iframe')查找元素。text u''谢谢,我改为使用我创建的另一个解决方案。