Dar*_*ook 9 php firefox webdriver selenium-webdriver
默认情况下,Selenium2以新的配置文件启动firefox.我喜欢这个默认设置,但出于某些原因(访问我的书签,保存密码,使用我的附加组件等)我想从我的默认配置文件开始.
还有就是应该是一个属性控制这一点,但我认为文档是与源同步的,因为据我可以告诉大家webdriver.firefox.bin的是,唯一可行的.例如,开始使用硒:
java -jar selenium-server-standalone-2.5.0.jar -Dwebdriver.firefox.bin=not-there
Run Code Online (Sandbox Code Playgroud)
工作(即抱怨).但这没有效果:
java -jar selenium-server-standalone-2.5.0.jar -Dwebdriver.firefox.profile=default
Run Code Online (Sandbox Code Playgroud)
("default"是profiles.ini中的名称,但我也尝试使用"Profile0",这是profiles.ini中该部分的名称).
我正在使用PHPWebdriver(使用JsonWireProtocol)来访问:
$webdriver = new WebDriver("localhost", "4444");
$webdriver->connect("firefox");
Run Code Online (Sandbox Code Playgroud)
我尝试从PHP端做到这一点:
$webdriver->connect("firefox","",array('profile'=>'default') );
Run Code Online (Sandbox Code Playgroud)
要么:
$webdriver->connect("firefox","",array('profile'=>'Profile0') );
Run Code Online (Sandbox Code Playgroud)
没有成功(firefox启动,但没有使用我的个人资料).
我还尝试了黑客创建批处理文件的方法:
#!/bin/bash
/usr/bin/firefox -P default
Run Code Online (Sandbox Code Playgroud)
然后启动Selenium:java -jar selenium-server-standalone-2.5.0.jar -Dwebdriver.firefox.bin ="/ usr/local/src/selenium/myfirefox"
Firefox启动,但没有使用默认配置文件,更糟糕的是,一切都挂起:selenium似乎无法与firefox通信这种方式启动时.
PS我看到Selenium - 自定义Firefox配置文件 我试过这个:
java -jar selenium-server-standalone-2.5.0.jar -firefoxProfileTemplate "not-there"
Run Code Online (Sandbox Code Playgroud)
它拒绝运行!兴奋,以为我可能会有所作为,我试过:
java -jar selenium-server-standalone-2.5.0.jar -firefoxProfileTemplate /path/to/0abczyxw.default/
Run Code Online (Sandbox Code Playgroud)
这什么都不做.即它仍然以新的配置文件开头:-(
西蒙斯图尔特在我的邮件列表上回答了这个问题.
总结一下他的回复:你拿你的firefox配置文件,压缩它(zip,而不是tgz),base64编码它,然后将整个事件作为/ session json请求发送(将base64字符串放在Capabilities对象的firefox_profile键中) ).
在Linux上执行此操作的示例方法:
cd /your/profile
zip -r profile *
base64 profile.zip > profile.zip.b64
Run Code Online (Sandbox Code Playgroud)
然后如果你在连接时使用PHPWebDriver:
$webdriver->connect("firefox", "", array("firefox_profile" => file_get_contents("/your/profile/profile.zip.b64")))
Run Code Online (Sandbox Code Playgroud)
注意:它仍然不是我真正的个人资料,而是它的副本.因此书签将不会被记住,缓存将不会被填充等.
这是Java等价物.我相信在php中有类似的东西.
ProfilesIni profile = new ProfilesIni();
FirefoxProfile ffprofile = profile.getProfile("default");
WebDriver driver = new FirefoxDriver(ffprofile);
Run Code Online (Sandbox Code Playgroud)
如果你想添加个人扩展,你也可以做这样的事情.
ProfilesIni profile = new ProfilesIni();
FirefoxProfile ffprofile = profile.getProfile("default");
ffprofile.addExtension(new File("path/to/my/firebug.xpi"));
WebDriver driver = new FirefoxDriver(ffprofile);
Run Code Online (Sandbox Code Playgroud)
小智 5
java -jar selenium-server-standalone-2.21.0.jar -Dwebdriver.firefox.profile=default
Run Code Online (Sandbox Code Playgroud)
应该管用.错误是固定的.
只需更新你的selenium-server.
| 归档时间: |
|
| 查看次数: |
17514 次 |
| 最近记录: |