我使用Selenium和Python Chrome webdriver.在我使用的代码中:
driver = webdriver.Chrome(executable_path = PATH_TO_WEBDRIVER)
Run Code Online (Sandbox Code Playgroud)
将webdriver指向webdriver可执行文件.有没有办法将webdriver指向Chrome浏览器二进制文件?
在https://sites.google.com/a/chromium.org/chromedriver/capabilities中,他们有以下内容(我认为它正是我正在寻找的):
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Run Code Online (Sandbox Code Playgroud)
有人有Python的例子吗?
我正在尝试使用适用于Selenium的ChromeDriver驱动程序来使用Chrome运行一些测试,但我在使用时遇到了引用错误ChromeOptions.
我想强制使用某些选项,例如针对特定用户配置文件测试它.根据Selenium和ChromeDriver文档,这是我的文件test.js:
opt = new chromeOptions(); // ERROR OCCURS HERE!
opt.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
opt.addArguments("--user-data-dir=C:\\Users\\MyUserAccount\\AppData\\Local\\Google\\Chrome\\User Data");
driver = new ChromeDriver(opt);
// rest of my script goes here
Run Code Online (Sandbox Code Playgroud)
我正在使用该命令执行此操作node test.js.这会在第一行引发以下错误:
\path\to\test.js:1
ction (exports, require, module, __filename, __dirname) { opt = new chromeOpti
^
ReferenceError: chromeOptions is not defined
at Object.<anonymous> (\path\to\test.js:1:73)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
Run Code Online (Sandbox Code Playgroud)
对于它的价值,如果我跳过设置选项并用此替换脚本的前四行,它可以工作,但我无法设置我需要设置的选项:
var webdriver …Run Code Online (Sandbox Code Playgroud) 我已经有使用Google Chrome的功能齐全的抓取工具。为了使其快速运行,我以编程方式配置了广告拦截器,跟踪器拦截器,图像拦截器,弹出式拦截器等(基本上是每种拦截器)。有许多行配置代码需要维护。
随之而来的是勇敢。
内置了我想要的所有阻止器-内置!它也基于Chromium构建-就像Chrome一样。因此,我可以将ChromeDriver与Brave结合使用。但这真的有用吗?
所以我尝试了-但失败了-以下异常:
System.InvalidOperationException occurred
HResult=0x80131509
Message=unknown error: no chrome binary at C:\SOMEPATH\Brave64\app-0.22.22\brave.exe
(Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 6.1.7601 SP1 x86_64)
Source=WebDriver
StackTrace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions options)
at FOO.GOO.Historical.Scrape.Session.CreateDriver[T]() in D:\FOO\FOO.GOO.Historical.Scrape\Session.cs:line 211
at FOO.GOO.Historical.Scrape.TestFixtures.Pages.PageTest.SessionSetUp(Boolean login) in D:\FOO\FOO.GOO.Historical.Scrape\TestFixtures\Pages\PageTest.cs:line 23
at FOO.GOO.Historical.Scrape.TestFixtures.ScraperTests.SetUp() in D:\FOO\FOO.GOO.Historical.Scrape\TestFixtures\ScraperTests.cs:line 21
Run Code Online (Sandbox Code Playgroud)
因此很明显,它不能直接替换。ChromeDriver表示它需要Chrome二进制文件,而不是勇敢的二进制文件。
有人可以解释一下是否有适合Brave的驱动程序?我已经为性能提升而垂涎三尺。