Python Selenium“Chrome由自动化测试软件控制”

时间:2018-03-08 15:52:08

标签: python google-chrome selenium selenium-chromedriver

我有一个小型的Python应用程序,只需用Selenium和FFmpeg记录网页/网页动画。直到昨天一直像魅力一样工作。

似乎Google已删除了“--disable-infobars”功能。可以从另一个标志或功能禁用它吗?

或者我是否被迫在顶部添加填充并从填充中记录?

以下是示例代码

#!/usr/bin/env python3
from pyvirtualdisplay import Display
import os

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

url = "http://foo.bar"

os.environ['DISPLAY'] = ':99'
display = Display(visible=0, size=(1920, 1080))
display.start()
display_port = os.environ['DISPLAY']

chrome_driver_path = "/usr/local/bin/chromedriver"
options = webdriver.ChromeOptions()
options.add_argument('--disable-gpu')
options.add_argument('--kiosk')
options.add_argument('--window-position=0,0')
options.add_argument('--disable-infobars');
options.add_argument('--window-size=1920,1080')

browser = webdriver.Chrome(executable_path=chrome_driver_path, chrome_options=options)
browser.get(url)

command = "/home/fidox/bin/ffmpeg -r 60 -t {} -video_size {}x{} -framerate 60 -f x11grab -i foo.mp4 f-an {}".format(10,1920,1080,display_port)
os.system(command) 

self.browser.quit()
display.stop()

3 个答案:

答案 0 :(得分:1)

对于Python3。

chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("useAutomationExtension", False)
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
driver = webdriver.Chrome(options=chrome_options)

答案 1 :(得分:0)

您是否更新到Chrome 65?如果你去查看Chrome,它会自动更新。 Chromedriver在Chrome 65中显示已损坏。您可以卸载并重新安装Chrome 64。

答案 2 :(得分:0)

disable-infobars标志已被删除,但您可以通过添加以下内容来删除该消息:

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
options.setExperimentalOption("excludeSwitches",Collections.singletonList("enable-automation"));    
WebDriver driver = new ChromeDriver(options);

这项工作对我而言,我也希望对你有用。

不知道如何在python中执行此操作。 请相应地转换上面的代码。