繁体   English   中英

page_source 打印上一个登录页面 html 尽管浏览器显示使用 Selenium 和 Python 成功登录

[英]page_source prints previous login page html despite browser showing a successful login using Selenium and Python

我正在使用 Selenium 登录到海康威视 IP 相机 web 客户端,我遇到了问题。 自动浏览器似乎成功登录,因为它加载了下一页,但是当我返回 page_source() 时,它显示 webdriver 仍然卡在登录页面上。 我已经尝试实现等待/直到和隐式等待 web 页面加载,但这似乎不是加载问题,因为无论我等待多长时间,我都会遇到同样的问题。

这是显示我如何登录的代码片段:

user = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")

# log in 
user.clear()
user.send_keys("admin")
password.clear()
password.send_keys("Snipr123")

driver.find_element_by_css_selector(".btn.btn-primary.login-btn").click()

The.clear() 只是为了摆脱给我带来问题的预加载文本。 登录click()后,自动浏览器成功加载 web 客户端,但 webdriver 没有,因为 page_source() 仍然返回登录页面。

任何关于可能出错的想法将不胜感激。

使用以下代码行登录后:

driver.find_element_by_css_selector(".btn.btn-primary.login-btn").click()

需要为DOM 树中任何可见元素的visibility_of_element_located()诱导WebDriverWait ,然后提取页面源如下:

driver.find_element_by_css_selector(".btn.btn-primary.login-btn").click()
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CLASS_NAME, "table")))
print(driver.page_source)

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM