java - 如何在 webdriver 中使用已打开的浏览器 Activity session

标签 java selenium selenium-webdriver session-cookies browser-cache

有没有办法将 session 继承到 webdriver 中?我做了很多搜索,知道 selenium 不支持连接到已经打开的浏览器。如果我能的话就更好了。但现在我想到了一些解决办法。实际上,我的应用程序以一个快捷方式文件启动,该文件启动 Firefox、点击应用程序 URL、登录、转到仪表板并留给用户使用它。在这种情况下,我不需要在打开的浏览器上工作,如果我只能获取该 Activity session 并在使用 selenium 打开网络驱动程序时设置它,那么我的目的就解决了。甚至手动也可以。由于 selenium 总是打开隐身网络驱动程序窗口,我无法在那里进行该 session 。谁能告诉我如何从已打开的浏览器获取该 session 并在 webdriver 中使用它?任何帮助或建议将不胜感激。

最佳答案

Selenium 只是一个使用 json 有线协议(protocol)接受 http 请求的服务器。 https://code.google.com/p/selenium/wiki/JsonWireProtocol 这是一个 http API。

json 有线协议(protocol)中的每个调用都会向请求添加一个 sessionId 参数。

因此,如果您使用驱动程序启动 session ,则可以保存该 session ID,然后实例化一个新的驱动程序对象并为其提供之前的 sessionId。

如果 selenium 服务器仍在运行该 session ,那么当您发送请求时,它不知道您正在使用哪个驱动程序对象。随意同时拥有 100 个具有相同 sessionID 的驱动程序! :D

关于java - 如何在 webdriver 中使用已打开的浏览器 Activity session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24158698/

相关文章:

java - 将 Flex/Air 与 Java EE 结合使用

google-chrome - 在 Selenium ChromeDriver 中使用 native 消息传递?

java - 如何使用 selenium 2.53.0 在 geckodriver 上使用最新的 Firefox 浏览器运行 selenium 脚本?

java - 使用 Selenium 在测试自动化期间检查元素时,某些网页中的元素 "id"会发生变化(非静态)。遇到这种情况该如何处理呢?

java - 无法获取日期 webelement 的唯一 xpath

java - 是否可以使用spark-avro数据源创建Spark应用程序并通过 'java -jar'执行它

java - 更新 SQLiteChange 上的 View

java - 如何从 Java 中的相对路径运行可执行文件

python - Selenium Python Firefox webdriver : can't modify profile

python selenium - 如何使 webdriver 使用 XPATH 2.0 版