我正在使用python ana selenium来自动化某些过程,但无法将selenium附加到默认的chrome配置文件 我试过了,
capability = webdriver.DesiredCapabilities.CHROME
self.driver = webdriver.Remote('http://127.0.0.1:9515/wd/hib',capability)
当然,我开始了,首先是chromedriver,还尝试过,
import time
from selenium import webdriver
import selenium.webdriver.chrome.service as service
service = service.Service('./chromedriver')
service.start()
capabilities = {'chrome.binary': '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'}
driver = webdriver.Remote(service.service_url, capabilities)
driver.get('http://www.google.com/xhtml');
time.sleep(5) # Let the user actually see something!
driver.quit()
这会导致selenium.common.exceptions.WebDriverException:消息:你不能在以下位置找到Chrome二进制文件:
并尝试过,
self.driver = webdriver.Chrome("./chromedriver")
这可行,但不是默认配置文件,也想知道如何用这个打开新窗口或新标签?
感谢。
答案 0 :(得分:2)
不要直接从网站上复制/粘贴一些东西!亲自看看那个文件夹,里面有什么东西吗?!我的猜测是否定的。这就是为什么当你离开这一点时,它工作正常,因为它正在寻找应该存在的Chrome!
任何方式,更多的是你错误地使用它!
如果您想为Selenium提供不同的配置文件以用于Chrome,那么您需要使用options
类:
https://code.google.com/p/selenium/source/browse/py/selenium/webdriver/chrome/options.py
您需要add_argument
功能。
为什么?
这是因为要为Chrome提供另一个配置文件,您需要使用特定的命令行启动Chrome(具体为--user-data-dir
):
http://www.chromium.org/user-experience/user-data-directory
add_argument
函数公开了添加命令行开关的功能。
因此,如果您使用add_argument
函数,Selenium将简单地传递给您的任何内容,直到Chrome作为其命令行开关的一部分。
答案 1 :(得分:0)
要找出您的chrome配置文件所在的位置,请启动chrome并键入
chrome://version
在地址栏中。在“个人资料路径:”下,您会看到您当前使用的个人资料的位置。例如:
~:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default