Selenium webdriver无法完全加载页面(python)

Selenium webdriver无法完全加载页面(python),python,python-3.x,selenium-webdriver,selenium-chromedriver,Python,Python 3.x,Selenium Webdriver,Selenium Chromedriver,我一直在使用SeleniumWebDriver和python,试图登录到这个网站 为此,我在python中执行了以下操作: from selenium import webdriver import bs4 as bs driver = webdriver.Chrome() driver.get('https://app.chatra.io/') 然后,我尝试使用Beautiful Soup进行解析: html = driver.execute_script('return docume

我一直在使用SeleniumWebDriver和python,试图登录到这个网站

为此,我在python中执行了以下操作:

from selenium import webdriver 
import bs4 as bs


driver = webdriver.Chrome()
driver.get('https://app.chatra.io/')
然后,我尝试使用Beautiful Soup进行解析:

html = driver.execute_script('return document.documentElement.outerHTML')
soup = bs.BeautifulSoup(html, 'html.parser')
print(soup.prettify)
主要问题是页面从未完全加载。当我自己在浏览器中加载页面时,一切正常。然而,当SeleniumWebDriver尝试加载它时,它似乎中途停止


知道为什么吗?有没有关于如何修复它或在哪里学习的想法?

首先,我也可以在最新的Chrome中重现这个问题(使用
chromedriver
2.34-目前也是最新的)-目前还不确定发生了什么。解决方法:Firefox非常适合我


并且,我会在
driver.get()
和HTML解析之间添加一个额外的步骤,以便让页面正确加载,直到所需的条件为真:

import bs4 as bs
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Firefox()
driver.get('https://app.chatra.io/')

wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.ID, "signin-email")))

html = driver.execute_script('return document.documentElement.outerHTML')
soup = bs.BeautifulSoup(html, 'html.parser')
print(soup.prettify())

请注意,您还需要调用
prettify()
-这是一种方法。

您面临的问题有以下几个方面:

  • 当您试图获得
    BeautifulSoup
    的帮助时,如果您试图从urlib.request使用urlopen,则错误会说明一切:

    urllib.error.HTTPError: HTTP Error 403: Forbidden
    
    这意味着检测到urllib.request,并引发
    HTTP错误403:probled
    。因此,使用selenium中的
    是有意义的

  • 接下来,当您使用
    ChromeDriver
    Chrome
    时,最初
    网站将打开并呈现。但是很快,
    ChromeDriver
    被检测为
    ,并且
    ChromeDriver
    无法解析
    标记。您可以看到最小标头为:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" class="supports cssfilters flexwrap chrome webkit win hover web"></html>
    
    控制台输出:

    <html class="supports cssfilters flexwrap firefox gecko win hover web"><head>
    <link class="" href="https://app.chatra.io/b281cc6b75916e26b334b5a05913e3eb18fd3a4d.css?meteor_css_resource=true&amp;_g_app_v_=51" rel="stylesheet" type="text/css"/>
    <meta charset="utf-8"/>
    <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover" name="viewport"/>
    .
    .
    .
    <em>··· Chatra</em>
    .
    .
    .
    </div></body></html>
    
    <bound method Tag.prettify of <html class="supports cssfilters flexwrap firefox gecko win hover web"><head>
    <link class="" href="https://app.chatra.io/b281cc6b75916e26b334b5a05913e3eb18fd3a4d.css?meteor_css_resource=true&amp;_g_app_v_=51" rel="stylesheet" type="text/css"/>
    <meta charset="utf-8"/>
    <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover" name="viewport"/>
    .
    .
    .
    <em>··· Chatra</em>
    .
    .
    .
    </div></body></html>>
    
    控制台输出:

    <html class="supports cssfilters flexwrap firefox gecko win hover web"><head>
    <link class="" href="https://app.chatra.io/b281cc6b75916e26b334b5a05913e3eb18fd3a4d.css?meteor_css_resource=true&amp;_g_app_v_=51" rel="stylesheet" type="text/css"/>
    <meta charset="utf-8"/>
    <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover" name="viewport"/>
    .
    .
    .
    <em>··· Chatra</em>
    .
    .
    .
    </div></body></html>
    
    <bound method Tag.prettify of <html class="supports cssfilters flexwrap firefox gecko win hover web"><head>
    <link class="" href="https://app.chatra.io/b281cc6b75916e26b334b5a05913e3eb18fd3a4d.css?meteor_css_resource=true&amp;_g_app_v_=51" rel="stylesheet" type="text/css"/>
    <meta charset="utf-8"/>
    <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover" name="viewport"/>
    .
    .
    .
    <em>··· Chatra</em>
    .
    .
    .
    </div></body></html>>
    
    控制台输出:

  • <html class="supports cssfilters flexwrap firefox gecko win hover web"><head>
    <link class="" href="https://app.chatra.io/b281cc6b75916e26b334b5a05913e3eb18fd3a4d.css?meteor_css_resource=true&amp;_g_app_v_=51" rel="stylesheet" type="text/css"/>
    <meta charset="utf-8"/>
    <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover" name="viewport"/>
    .
    .
    .
    <em>··· Chatra</em>
    .
    .
    .
    </div></body></html>
    
    <bound method Tag.prettify of <html class="supports cssfilters flexwrap firefox gecko win hover web"><head>
    <link class="" href="https://app.chatra.io/b281cc6b75916e26b334b5a05913e3eb18fd3a4d.css?meteor_css_resource=true&amp;_g_app_v_=51" rel="stylesheet" type="text/css"/>
    <meta charset="utf-8"/>
    <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover" name="viewport"/>
    .
    .
    .
    <em>··· Chatra</em>
    .
    .
    .
    </div></body></html>>
    

···查特拉
身体{
背景:#f6f5f7
}
···查特拉