如果激活了几个驱动程序,是否可以使用Selenium和Appium打开活动驱动程序的session_id?

时间:2016-04-07 12:24:07

标签: selenium appium

在自动化的同时,我打开几个浏览器,比如Firefox,用

driver1 = webdriver.Firefox()
driver2 = webdriver.Firefox()
driver3 = webdriver.Firefox()
.....

有没有办法获取活动浏览器的session_id和webdriver本身? 关于Appium的同样问题。是否有可能获得活跃设备的session_id和驱动程序本身(虚拟或真实)?

4 个答案:

答案 0 :(得分:5)

使用Selenium / Java获取驱动程序会话ID:

WebDriver driver = new FirefoxDriver();

SessionId session = ((FirefoxDriver)driver).getSessionId();
System.out.println("Session id: " + session.toString());

使用Selenium / Java获取远程驱动程序会话ID:

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
WebDriver driver = new RemoteWebDriver(new URL("http://127.0.0.1:4722/wd/hub"), capabilities);

SessionId session = ((RemoteWebDriver)driver).getSessionId();
System.out.println("Session id: " + session.toString());

答案 1 :(得分:0)

使用DataFactory。以下代码段(在Katalon Studio中编写,但使用了硒,因此我想它在其他工具中将是相似或相同的)

WebDriver driver1 = new ChromeDriver()
WebDriver driver2 = new ChromeDriver()

DriverFactory.changeWebDriver(driver1)
driver1.get("https://www.example.com")
println DriverFactory.webDriver

DriverFactory.changeWebDriver(driver2)
driver2.get("https://news.example.com")
println DriverFactory.webDriver

将打印到控制台:

ChromeDriver: chrome on XP (fc70e83ced12b3e9beed990e88670d8e)
ChromeDriver: chrome on XP (a810d0cf94dbaf1cbd018542f9c983c3)

会话ID放在方括号中。

答案 2 :(得分:0)

有解决此问题的方法。您可以创建一个会话。这为您提供了Webdriver实例,还有sessionID。

DefaultDriverFactory defaultDriverFactory = new DefaultDriverFactory(Platform.WINDOWS); 
TemporaryFilesystem temporaryFilesystem = TemporaryFilesystem.getDefaultTmpFS(); 
ChromeOptions chromeOptions = new ChromeOptions();
Session session = DefaultSession.createSession(defaultDriverFactory, temporaryFilesystem, chromeOptions); 
WebDriver webDriver = session.getDriver();
SessionId sessionId = session.getSessionId(); 

答案 3 :(得分:0)

((ChromeDriver)driver).sessionId();