登录Zi

2024-09-30 08:27:49 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,不知什么原因,我无法登录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"

NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"email"} Stacktrace: at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/driver-component.js:10271) at FirefoxDriver.prototype.findElement (file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/driver-component.js:10280) at DelayedCommand.prototype.executeInternal_/h (file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/command-processor.js:12274) at DelayedCommand.prototype.executeInternal_ (file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/command-processor.js:12279) at DelayedCommand.prototype.execute/< (file:///var/folders/b1/r8rn2dg17k93wnn4kw_fpyf40000gn/T/tmpKjj1hV/extensions/fxdriver@googlecode.com/components/command-processor.js:12221)


Tags: comidbytimevardriversleepelement
1条回答
网友
1楼 · 发布于 2024-09-30 08:27:49

登录表单位于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

对我有用。你知道吗

相关问题 更多 >

    热门问题