yaq*_*awa 7 javascript selenium selenium-webdriver
我正在尝试使用Selenium来自动化文件上传.
我已经用selenium-webdriver写了一个很小的程序.
问题是,需要上传数千个文件,我想同时运行多个浏览器实例以加快自动化.所以我尝试过这样的事情
var i = 0;
while (i < 10) {
i++;
var driver = new webdriver.Builder()
.forBrowser('firefox')
.build();
// login and upload files......
}
Run Code Online (Sandbox Code Playgroud)
我预计这将同时创建10个浏览器实例,并同时进行自动化.
但实际上......上面的代码将逐个创建浏览器实例,这意味着,在上一个实例完成之前,它不会创建另一个实例.
我也尝试在多个shell实例中执行该程序,这将为我启动多个浏览器实例,但我只是不想这样做...
那么你需要创建多个线程而不是循环,然后你可以在并行线程中开始每个上传。你走在正确的轨道上。你不需要硒网格来实现这一点。
查找多线程。你可以从这个答案开始
您需要网格来执行多个浏览器会话是不对的。您可以通过创建多个驱动程序对象并对其进行管理来调用多个浏览器会话。如果您愿意,每个会话都将是单独的。
网格用于扩展,因为您可以运行的浏览器实例数量有限制,以保持机器性能不变并测试稳定。就像一台机器中超过 5 个 chrome 实例。如果你想做更多,那么你必须使用 selenium Grid。