首页 > 解决方案 > Python selenium 无法找到用户名元素

问题描述

我正在尝试使用 Python 和 Selenium为我的本地图书馆网站( http://mcls.ent.sirsi.net/client/en_US/mclweb )创建一个自动登录系统。但是,我的脚本无法找到用户名框。

用户名框的网站 HTML 如下所示

<input maxlength="30" class="user_name_input" id="j_username" name="j_username" type="text">

这是我用来找到它的代码

username = browser.find_element_by_id('j_username')
username.send_keys(u)

但是,我收到以下错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"j_username"}

我应该使用不同的功能吗?还是我使用 find_element_by_id() 错误?提前致谢。

标签: pythonselenium

解决方案


登录表单位于框架上。你必须切换到框架。

browser.get("http://mcls.ent.sirsi.net/client/en_US/mclweb")
browser.find_element_by_class_name('loginLink').click()
time.sleep(5)
browser.switch_to.frame(1) //login iframe is the second frame in the page
time.sleep(5)
browser.find_element_by_id('j_username').send_keys(u)

另一种方法,如果您不想切换到框架:

browser.get("http://mcls.ent.sirsi.net/client/en_US/mclweb/search/patronlogin")
browser.find_element_by_id('j_username').send_keys(u)

推荐阅读