我试图连接到学校的网址并使用硒自动化过程。最初我尝试使用分裂,但遇到类似的问题。我似乎无法与用户名和密码字段进行交互。我意识到一点点,因为它是一个我需要与之交互的iframe。目前,我有:与网站表单互动
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("https://my.oregonstate.edu/webapps/login/")
driver.switch_to.frame('Content') #I tried contentFrame and content as well
loginid = driver.find_elements_by_id('user_id')
loginid.send_keys("***")
passwd = driver.find_elements_by_id('password')
passwd.send_keys("***")
sub = driver.find_elements_by_id('login')
sub.click()
time.sleep(5)
driver.close()
这里是我想与之交互的HTML:
网站:https://my.oregonstate.edu/webapps/portal/frameset.jsp
的IFRAME:
<iframe id="contentFrame" style="height: 593px;" name="content" title="Content" src="/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_1_1" frameborder="0"></iframe>
的形式:
用户名:<input name="user_id" id="user_id" size="25" maxlength="50" type="text">
密码:
<input size="25" name="password" id="password" autocomplete="off" type="password">
看来,硒能找到的元素随便找,但我无法输入任何信息到这些领域,我得到了错误“列表对象有没有属性”。当我意识到这是我尝试导航到的iframe时,它说'无法定位帧:内容'。是否有另一个iframe我缺少?或者明显的东西?这是我第一次在这里很抱歉,如果我搞砸了代码链接。
感谢您的帮助。
你是对上发现的元素。然而,我的问题仍然存在于iframe中。无论我使用什么,无论是id还是name,它仍然无法连接。我注意到有另一个导航栏的iframe。但我不应该连接到第一个权利?它们在html中是分开的。你有什么建议吗? – KJS 2014-09-02 18:14:58
@KJS:我已经测试了上面的代码。你在使用什么环境?我有Python 2.7.5,Selenium 2.42.1,Firefox 24.6.0 ESR。请尝试与Chrome,如果它的工作,那么它应该是一个Firefox问题,而不是代码。 – 2014-09-02 20:53:25
嗯,我得到它使用不同的URL来连接。我不认为这是代码,但奇怪的是,也许是网站。我目前正在使用网站: https://my.oregonstate.edu/webapps/login/?action=relogin 它允许我输入字段但不选择提交按钮。我正在使用find_element_by_class_name('submit button-1'),但我得到错误'给定的选择器提交按钮1无效或不会导致webelement。有什么想法吗? – KJS 2014-09-03 02:31:41