python - 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() 错误?提前致谢。
解决方案
登录表单位于框架上。你必须切换到框架。
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)
推荐阅读
- rest - What if you make a PUT request and there is no such entity on server?
- c# - EPPlus 将逗号视为点
- c# - Wpf - 如何使图片框全视图
- python-2.7 - 如果在odoo8中的on2many中选择相同的产品,如何引发异常
- python - Use function globally or locally?
- wxpython - 如何让我的 wxPython 文本编辑器变暗?
- bootstrap-4 - What is the Bootstrap 4.0+ equivalent to ".hidden-size-down/up"
- sql - Display Serial No month wise according to number of data in table
- android - 找到了 React Native-Haste 包。但是找不到模块错误
- neo4j - Neo4j 如何在内存中缓存属性