PrintToPDF Je dois imprimer toutes les pages html liées à partir d'une page d'information produit: http://prod.adv-bio.com/ProductDetail.aspx?ProdNo=1197Headless Chrome Accédez à la page, cliquez sur la page liée, puis
J'ai mis en place un script de test pour voir si je pouvais faire ceci pour juste un des fichiers html. J'ai utilisé PyChromeDevTools et Selenium, espérant pouvoir utiliser la fonction printToPDF dans DevTools, tout en utilisant Selenium pour cliquer sur les liens que je dois cliquer.
Voici le code que j'ai jusqu'à présent:
import requests
import time
import re
import websocket
import PyChromeDevTools
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--remote-debugging-port=9222')
chrome_options.add_argument('--window-size=1200x600')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome('C:\\Users\\me\\AppData\\Local\\Programs\\Python\\Python36- 32\\selenium\\webdriver\\chromedriver_win32\\chromedriver.exe', chrome_options = chrome_options)
driver.get("http://prod.adv-bio.com/ProductDetail.aspx?ProdNo=1197")
browser = PyChromeDevTools.ChromeInterface()
browser.Network.enable()
browser.Page.enable()
driver.implicitly_wait(20)
driver.get("http://prod.adv-bio.com/ProductDetail.aspx?ProdNo=1197")
time.sleep(3)
url = driver.find_element_by_partial_link_text("Continuing")
time.sleep(3)
ActionChains(driver).click(url).perform()
time.sleep(3)
Page.printToPDF()
time.sleep(5)
et je reçois cette erreur
Traceback (most recent call last):
File "C:\Users\me\SOtestfile.py", line 29, in <module>
driver = webdriver.Chrome('C:\\Python27\\Lib\\site-
packages\\chromedriver_win32\\chromedriver.exe', chrome_options =
chromeOptions, desired_capabilities=capabilities)
File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 69, in __init__
desired_capabilities=desired_capabilities)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 98, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 188, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 256, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: chrome not reachable
(Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Windows NT 6.1.7601 SP1 x86_64)
J'ai mis à jour chromedriver à 2,31 et avoir la version chrome 60, devrais-je utiliser canari ? J'apprécie toute aide à ce sujet.
J'ai juste essayé de modifier le code que j'ai posté pour utiliser ces options, mais maintenant obtenir une erreur. Avez-vous pu imprimer le fichier en pdf? Pourriez-vous poster le reste du code que vous avez utilisé? Je commence à penser que c'est un problème avec mon proxy, ou que PyChromeDevTools et Selenium utilisent le même port et ne peuvent pas être exécutés ensemble. – Condav
Essayez de commenter ces deux lignes dans votre code: 'chrome_options.add_argument ('- remote-debugging-port = 9222') chrome_options.add_argument ('- disable-gpu')' – user3196587
Malheureusement, commenter ceux-là n'a pas résoudre mon problème. Je vais essayer de reproduire ceci sur mon ordinateur personnel et exclure si mon pare-feu de travail entrave. J'ai réussi à faire fonctionner FireFox, mais le pare-feu m'oblige à me connecter à chaque boucle (IT encourage fortement IE mais je parie qu'aucun d'entre eux ne l'utilise ...) Je posterai mes questions/gratitude une fois terminé. – Condav