python教学互动网站_与网站表单互动

我正在尝试连接到学校网址,并使用硒自动执行该过程。最初,我尝试使用碎片,但遇到了类似的问题。我似乎无法与用户名和密码字段进行交互。我意识到一些方式,因为它是我需要与之交互的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:

iframe:

形式:

用户名:

密码:

硒似乎可以找到刚刚找到的元素,但是我无法在这些字段中输入任何信息,出现错误“列表对象没有属性”。当我意识到这是iframe时,我尝试进入其中,但显示“无法找到框架:内容”。我还缺少另一个iframe吗?还是明显的东西?这是我第一次来这里,如果对代码链接有任何误解,对不起。

谢谢您的帮助。

解决方案

driver.switch_to.frame()取框架的idorname,其中您的框架具有id =contentFrame和name =content。(他们无法正常工作的原因可能是由于其他问题,请仔细阅读)

首先,请尝试使用其中之一,而不是Content(使用大写字母C)。

解决上述问题后,您的代码中还会出现另一个错误。

loginid = driver.find_elements_by_id('user_id')

loginid.send_keys("***")

driver.find_elements_by_id查找所有匹配的元素,这是一个列表。所以你不能使用send_keys。请使用driver.find_element_by_id('user_id')。

这是我测试过的代码。

from selenium import webdriver

driver = webdriver.Firefox()

driver.get("https://my.oregonstate.edu/webapps/login/")

driver.switch_to.frame('content') # all lower case to match your actual frame name

loginid = driver.find_element_by_id('user_id')

loginid.send_keys("***")

passwd = driver.find_element_by_id('password')

passwd.send_keys("***")

关于您以下评论中的问题

from selenium import webdriver

driver = webdriver.Firefox()

driver.get("https://my.oregonstate.edu/webapps/login/?action=relogin")

loginid = driver.find_element_by_id('user_id')

loginid.send_keys("***")

passwd = driver.find_element_by_id('password')

passwd.send_keys("***")

driver.find_element_by_css_selector('.submit.button-1').click()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值