我对Selenium和WebDriver非常陌生。
关于使用WebDriver推出Firefox浏览器的方式,我没有什么要说清楚的地方,如果我错了,请纠正我。
以下代码行每次打开Firefox网络浏览器时都会启动带有新会话ID的Firefox浏览器。
WebDriver driver = new FirefoxDriver();
我的问题是:
请解释一下。我很困惑。
答案 0 :(得分:0)
对于Selenium 2.xx和Firefox 45.6esr(在Linux上),它是这样的:
每次启动会话时,都会在系统的临时目录中创建Firefox配置文件的新副本。如果未指定 - 例如在FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile)
的构造函数中 - 将采用默认配置文件。 在任何情况下,都会复制个人资料。
原因可能是 - 如果Selenium崩溃 - 它不会损害您可能用于手动浏览的配置文件。此外,在调用WebDriver.quit()
时会删除临时配置文件。
因此,每个会话都有唯一的ID和唯一的临时配置文件。请注意,临时配置文件的名称不是从会话ID派生的。
我认为其他Selenium和Firefox版本甚至操作系统(至少是Windows)都是一样的。要查找,请使用以下代码段:
FirefoxDriver driver = new FirefoxDriver();
System.out.println(driver.getSessionId());
String tmpDir = System.getProperty("java.io.tmpdir");
System.out.println(tmpDir);
File dir = new File(tmpDir);
String[] files = dir.list();
for (String file : files) {
System.out.println(file);
}
输出类似于(第一个是会话ID,最后一个是具有临时firefox配置文件的目录名称:
60bdbf4a-f4b3-4e71-a6be-9e3ad28a3b09
[...]
/tmp
[...]
anonymous8971467451928507515webdriver-profile