0
我必须打印从产品信息页面链接到所有的HTML页面: http://prod.adv-bio.com/ProductDetail.aspx?ProdNo=1197无头浏览器导航页,点击链接的页面,然后printToPDF
我已经建立了一个测试脚本,看看我能做到这只是其中一个html文件。我使用了PyChromeDevTools和Selenium,希望我可以在DevTools中使用printToPDF函数,同时使用Selenium单击我需要单击的链接。
这里是我的代码至今:
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)
,我得到这个错误
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)
我已经更新chromedriver至2.31,并有镀铬版60,我应该使用金丝雀?我很感激这方面的帮助。
我刚刚尝试编辑我发布的代码以使用这些选项,但现在出现错误。您是否可以将文件打印到pdf?您介意发布您使用的其他代码吗?我开始认为这是我的代理的问题,或者PyChromeDevTools和Selenium使用相同的端口,无法一起运行。 – Condav
尝试在代码中注释这两行:'chrome_options.add_argument(' - remote-debugging-port = 9222') chrome_options.add_argument(' - disable-gpu')' – user3196587
不幸的是,解决我的问题。我将尝试在我的个人计算机上复制此内容,并排除我的工作防火墙是否妨碍了您的工作。我能够得到这个与FireFox的工作,但防火墙迫使我登录每个循环(IT强烈鼓励IE,但我敢打赌,他们都没有使用它...)我会在完成后发布我的问题/感激。 – Condav