使用Webdriverjs Selenium加载默认的Chrome配置文件

5

我是Selenium和Webdriver的新手。我正在尝试使用node中的Webdriverjs编写测试。我希望Selenium加载我的默认Chrome配置文件。这就是我正在尝试的,但它仍然会加载一个新的Chrome配置文件。

var webdriver = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');
var o = new chrome.Options();
o.addArguments("--user-data-dir=/Users/karnesh/Library/Application Support/Google/Chrome/Default");
var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome())
            .setChromeOptions(o).build(); 

你有什么想法我错在哪里了吗?

此外,我找不到webdriverjs的文档。如果有链接的话,会很有帮助。谢谢。


@Louis:你如何验证它使用了正确的配置文件?我用"--user-data-dir=c:\\Users\\a-miste\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\"替换了路径(我在Windows8上),但它仍然加载新的配置文件... - Mars Robertson
@MichalStefanow 我创建了一个全新的配置文件,因为我不想使用我的常规配置文件。然后我通过添加单个扩展程序来修改此配置文件。然后我运行了脚本。Chrome浏览器打开了我添加到此配置文件中的扩展程序,所以我知道它没有为此次运行创建全新的配置文件。我还尝试在配置文件路径中加入空格,它仍然可以正常工作。(我认为如果路径中间有空格,Selenium可能会错误地传递参数,导致出现错误。) - Louis
@Louis - 感谢您抽出时间澄清。另外 - 你是如何运行Selenium的?我使用node scriptname.js,然后使用node-inspector可以看到执行期间的变量值:http://i.imgur.com/xcBn6wM.png - 但仍然会每次创建一个新的配置文件...(奇怪) - Mars Robertson
@MichalStefanow 是的,node test.js。不过我用的是Linux,而你们用的是Windows。无论如何,这个问题在这里是一个重复的问题:那个。那里的答案没有使用前导的“--”。 - Louis
@MichalStefanow 确实,我应该说“准重复”。 - Louis
显示剩余2条评论
1个回答

10

chrome://version是你的好朋友 - 通过使用它,你可以看到你当前的配置文件路径。

我在Windows8机器上使用2.46.1,在浪费(投资)了几个小时的时间后,我意识到默认情况下会添加Default

输入图像描述

因此,为了使用我的另一个配置文件 -“Profile 1”-我必须将其复制到某个地方,并将其放置在Default目录下。

不确定这是个错误还是一个功能。

更新:https://github.com/SeleniumHQ/selenium/issues/854


2
要选择不同的配置文件,比如说Profile 1,请使用以下命令:options.addArguments("profile-directory=Profile 1"); - Glen Pierce
我已将配置文件复制到另一个位置并尝试了相同的操作,但仍然无法正常工作,并在配置文件路径中添加默认值。有任何建议吗?我正在使用macOS。这是我的chrome配置文件路径:options.addArguments("user-data-dir=/Users/henry/Documents/POC/Profile 4"); - Vaibhav_Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接