[英]Table data not available in page_source HTML -Python/Selenium
[英]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.