雨特宙科技

欢迎来到雨特宙科技

探索未知,扩展人生

实现web登录界面自动登录

调用selenium库,可以实现校园网账号自动登录,最开始一直出现selenium “could not be scrolled into view”的错误,经过查资料,发现可能是以下原因:

没有加延时,网页还没有加载

添加time.sleep(5),但依然出现问题

可能满足属性的元素不止一个,首先查找的是隐藏的元素

增加匹配属性,在原有name属性的前提下,加入class属性,解决了问题。

中间也考虑直接向隐藏的属性通过js功能(river.execute_script("document.querySelector('input[name="upass"]').value = 'your_password'"))直接添加,但是发现没起作用。

成功代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
import time as t

username = 'your'
password = 'your'

options = Options()
options.binary_location = '/snap/firefox/3206/usr/lib/firefox/firefox'  # 替换为您的 Firefox 可执行文件路径
service = Service('/snap/bin/geckodriver')  # 替换为您的 GeckoDriver 可执行文件路径
driver = webdriver.Firefox(options=options, service=service)

# 创建Firefox浏览器驱动对象
#driver = webdriver.Firefox(executable_path=driver_path)
# 启动Chrome浏览器
#driver = webdriver.Firefox()

# 打开网页
driver.get('http:')
#driver.get('https://www.baidu.com/')
t.sleep(3)

# 获取用户名和密码输入框的元素
username_elem = driver.find_element(By.XPATH, '//input[@class="edit_lobo_cell" and @name="DDDDD"]')

'''
for ele0 in element0:
    if ele0.is_displayed():
        ele0.click()

'''
#driver.execute_script("arguments[0].setAttribute('value', 'SY20213071377')", username_elem)
#driver.execute_script("document.querySelector('input[name=\"upass\"]').value = 'zz030631272@yyy'")
#username_elem = driver.find_element(By.NAME, 'DDDDD')
password_elem = driver.find_element(By.XPATH, '//input[@class="edit_lobo_cell" and @name="upass"]')
#driver.execute_script("arguments[0].setAttribute('value', 'zz030631272@yyy')", password_elem)

# 输入用户名和密码
username_elem.click()
username_elem.send_keys(username)
t.sleep(1)
password_elem.click()
password_elem.send_keys(password)
t.sleep(1)
# 提交表单
submit_button = driver.find_element(By.XPATH,'//input[@type="submit"]')
submit_button.click()
t.sleep(3)
# 关闭浏览器
driver.quit()

posted @ 2023-10-09 21:59  YTZt  阅读(91)  评论(0编辑  收藏  举报