我正在尝试使用selenium进入升级的firefox Web浏览器自动化。似乎硒需要木偶司机才能继续工作。我按照开发者设置的说明进行操作,
以下代码没有设法将PATH正确设置为自定义路径。
System.Environment.SetEnvironmentVariable(" webdriver.gecko.driver"," @C:\ DOWNLOADS \ wires.exe")
所以我将wires.exe添加到debug \ bin文件夹然后wires.exe正常工作但我收到以下错误
捕获了System.InvalidOperationException消息=未找到实体Source = WebDriver
这是我用来启动webdriver的代码
var stock = mongoose.model("vault",{
name:{type:String},
location:{type:String},
minspent:{type:Number},
minlength:{type:Number},
member:{type:Boolean}
});
router.post('/logic',function(req,res,next){
if (req.body.type == 'collection') {
//edit corresponding attribute of all the items in that collection
console.log("it is collection");
} else if (req.body.type == "item") {
//edit the corresponding attribute of the item
product = req.body.productname;
section = req.body.segment;
stock.findOne({name:product}, function(err,doc) {
if(err){console.log("failed to update doc");}
doc.location = "The 6";
doc.save();
});
}
console.log("it went through");
res.json({ ok: true });
});
答案 0 :(得分:3)
我也使用FirefoxDriver(新的FirefoxOptions())获得 “未找到实体” 错误。它似乎在C:\ Program Files(x86)\ Nightly中寻找firefox.exe而没有找到它。我发现这个工作:
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
service.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
IWebDriver driver = new FirefoxDriver(service);
答案 1 :(得分:2)
我尝试使用它并且它正在工作:
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"C:\Users\jmalpartida\Downloads\geckodriver-v0.8.0-win32", "geckodriver.exe");
service.Port = 64444;
service.FirefoxBinaryPath = @"C:\Program Files (x86)\Firefox Developer Edition\firefox.exe";
IWebDriver driver = new FirefoxDriver(service);
答案 2 :(得分:0)
首先,您需要将驱动程序添加到系统路径中,而不是作为env变量。 其次,您需要将标志设置为所需的功能,而不是Firefox选项。请参阅:Marionette Webdriver
对于远程webdriver:
DesiredCapabilities capabilities = DesiredCapabilities.Firefox();
capabilities.SetCapability("marionette", true);
var driver = new RemoteWebDriver(capabilities);
将webdriver添加到windows path:
最简单的方法是打开开始菜单>搜索环境>打开编辑系统环境变量>点击环境变量>在路径>列表中搜索点击编辑>将;C:\path\to\webdriver\location\wires.exe
添加到最后,然后点击保存。
对于您的本地(非webdriver)测试,您可以使用以下命令运行您的webdriver:
var driver = new FirefoxDriver(new FirefoxOptions());
你不应该使用
option1.IsMarionette = true;
option1.AddAdditionalCapability("marionette", true);
如果您已在路径环境变量中正确设置了驱动程序路径。