Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 加载时打印页面_Python_Selenium - Fatal编程技术网

Python 加载时打印页面

Python 加载时打印页面,python,selenium,Python,Selenium,加载时如何打印页面 执行此操作时,print driver.page\u source.encode('utf-8')输出似乎是第一页,而不是搜索结果 import sys import time import getopt from pyvirtualdisplay import Display from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.s

加载时如何打印页面

执行此操作时,
print driver.page\u source.encode('utf-8')
输出似乎是第一页,而不是搜索结果

import sys
import time
import getopt
from pyvirtualdisplay import Display
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

def start_display():
    display = Display(visible=0, size=(800, 600))
    display.start()
    return display

def init_driver():
    driver = webdriver.Firefox()
    driver.wait = WebDriverWait(driver, 5)
    return driver

def lookup(driver, argv):
    driver.get('http://www.google.dk')

    query = ''

    opts, args = getopt.getopt(argv, 'hg:d', ['query='])
    for opt, arg in opts:
        if opt == '--query':
            query = arg

    try:
        box = driver.wait.until(EC.presence_of_element_located(
            (By.NAME, 'q')))
        box.send_keys(query)
        button = driver.wait.until(EC.element_to_be_clickable(
            (By.NAME, 'btnG')))
        button.click()
        print driver.page_source.encode('utf-8')

    except TimeoutException:
        print>>sys.stderr, 'Box or Button not found in google.com'

if __name__ == '__main__':
    display = start_display()
    driver = init_driver()
    lookup(driver, sys.argv[1:])
    time.sleep(5)

    driver.quit()
    display.stop()

如果应用程序在页面加载后更新内容,则必须打印页面正文而不是页面源

见下面的代码:

try:
    box = driver.wait.until(EC.presence_of_element_located(
        (By.NAME, 'q')))
    box.send_keys(query)
    button = driver.wait.until(EC.element_to_be_clickable(
        (By.NAME, 'btnG')))
    button.click()
    time.sleep(10)
    print driver.find_element_by_tag_name("body").get_attribute("innerHTML").encode('utf-8')

except TimeoutException:
    print>>sys.stderr, 'Box or Button not found in google.com'

如果应用程序在页面加载后更新内容,则必须打印页面正文而不是页面源

见下面的代码:

try:
    box = driver.wait.until(EC.presence_of_element_located(
        (By.NAME, 'q')))
    box.send_keys(query)
    button = driver.wait.until(EC.element_to_be_clickable(
        (By.NAME, 'btnG')))
    button.click()
    time.sleep(10)
    print driver.find_element_by_tag_name("body").get_attribute("innerHTML").encode('utf-8')

except TimeoutException:
    print>>sys.stderr, 'Box or Button not found in google.com'

您需要在单击搜索按钮
btnG
后添加等待,否则它不会等待XHR请求完成

try:
    box = driver.wait.until(EC.presence_of_element_located(
        (By.NAME, 'q')))
    box.send_keys(query)
    button = driver.wait.until(EC.element_to_be_clickable(
        (By.NAME, 'btnG')))
    button.click()

    driver.wait.until(EC.presence_of_element_located(
            (By.ID, 'resultStats')))

    print driver.page_source.encode('utf-8')

您需要在单击搜索按钮
btnG
后添加等待,否则它不会等待XHR请求完成

try:
    box = driver.wait.until(EC.presence_of_element_located(
        (By.NAME, 'q')))
    box.send_keys(query)
    button = driver.wait.until(EC.element_to_be_clickable(
        (By.NAME, 'btnG')))
    button.click()

    driver.wait.until(EC.presence_of_element_located(
            (By.ID, 'resultStats')))

    print driver.page_source.encode('utf-8')