"binary" => {
if let Some(binary) = value.as_str() {
if !data.contains_key("androidPackage")
&& self.version(Some(Path::new(binary))).is_err()
{
return Err(WebDriverError::new(
ErrorStatus::InvalidArgument,
format!("{} is not a Firefox executable", &**key),
));
}
} else {
return Err(WebDriverError::new(
ErrorStatus::InvalidArgument,
format!("{} is not a string", &**key),
));
}
}
如果你想要 FireFox,你将不得不使用旧版本的浏览器,原来是 87 版。你可以使用便携式(不要忘记立即关闭更新),但是你将不得不使用旧的 geckodriver版本 0.26(在 0.27+ 中,他们添加了某种额外的检查浏览器安装或类似的东西)。反过来,这将需要回滚到 selenium 3。
如果您想要 selenium 4,那么您可以尝试以下选项:
(我没有成功。根据代码,似乎(rust太陌生的语言)读取了它搜索的浏览器文件夹中的ini文件,但它不起作用,仅此而已)
为此,您需要。
下载整个 repo(作为zip 文件,因为它是善变的)。
解压到一个真实的磁盘(这很重要- 没有这个会有一个模糊的编译错误)
安装 rust(我有 win 10,我刚刚下载了官方的)
testing/geckodriver/src/capabilities.rs通过删除检查修复文件留下来
targetgeckodriver.exe 将出现在文件夹中,该文件夹将能够运行便携我不知道这是否是调试版本——它的工作原理很重要。而在linux下,你可能需要自己构建linux。