我正在 Edge 浏览器上运行 selenium 脚本。其中一项功能需要在两个窗口之间发起音频或视频呼叫。在 Chrome 中,我们可以在 Chrome 选项中使用“use-fake-ui-for-media-stream”。 Edge 有类似的东西吗?如果没有,是否有办法在运行时接受这些警报。我已经尝试过了-
driver.switchTo().alert().accept()
,
但这也不起作用,并抛出错误说
no such alert present
已编辑
我正在使用 Edge chromium 和 java selenium,并在代码中设置了如下属性。脚本运行时仍会弹出权限窗口
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_settings.popups", 0);
prefs.put("download.default_directory", fileDownloadLocation);
EdgeOptions options= new EdgeOptions();
options.setCapability("prefs", prefs);
options.setCapability("allow-file-access-from-files", true);
options.setCapability("use-fake-device-for-media-stream", true);
options.setCapability("use-fake-ui-for-media-stream", true);
DesiredCapabilities capabilities = DesiredCapabilities.edge;
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS,true);
capabilities.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS,true);
System.setProperty("webdriver.edge.driver", getDriverPath("EDGE"));
driver = new EdgeDriver(options);
driver.manage().window().maximize();
我建议您使用下面的示例代码进行测试。我尝试使用 Edge Chromium 浏览器进行测试,看起来它没有请求权限弹出窗口。
JAVA代码:
public static void main(String[] args)
{
System.setProperty("webdriver.edge.driver","\\msedgedriver.exe");
EdgeOptions op=new EdgeOptions();
op.addArguments("use-fake-device-for-media-stream");
op.addArguments("use-fake-ui-for-media-stream");
WebDriver browser = new EdgeDriver(op);
browser.get("https://your_URL_here...");
}
Selenium 3.141 没有
addArguments()
方法,但是 Selenium 4.0.0 alpha 有:
EdgeOptions edgeOpts = new EdgeOptions();
edgeOpts.addArguments("allow-file-access-from-files");
edgeOpts.addArguments("use-fake-device-for-media-stream");
edgeOpts.addArguments("use-fake-ui-for-media-stream");
edgeOpts.addArguments("--disable-features=EnableEphemeralFlashPermission");
driver = new EdgeDriver(edgeOpts);