Pan*_*jit 8 firefox selenium webdriver selenium-chromedriver
这可能是一个重复的问题,但我找不到任何解决方案.最近我发现了一个相关的帖子,将Selenium WebDriver连接到现有的浏览器会话,但人们建议我提出一个新问题.
如果有人试图将selenium webdriver连接到早先由selenium产生的浏览器会话并且已经成功完成,请告诉我.
我可以找到几个建议来尝试firefox和selenium 2.X版本.但这些建议不适用于selenium 3.X,并且没有针对chrome浏览器的解决方案.
我已经尝试了Selenium 25.3,firefox v 46的所有建议,它的工作原理.但对于带Chrome驱动程序的Chrome,我无法使其正常运行.
这是我尝试过的代码:
启动一个firefox驱动程序
System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir")+"/StartFirefoxSession_lib/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
Run Code Online (Sandbox Code Playgroud)
复制的RemoteWebDriver源代码和已更改的功能从私有到受保护.
protected Capabilities capabilities;
Run Code Online (Sandbox Code Playgroud)
创建一个新类RemoteDriverEx扩展复制的RemoteWebDriver类将原始驱动程序发出的NEW_SESSION命令更改为GET_CURRENT_URL
Response response = execute(DriverCommand.GET_CURRENT_URL, Collections.EMPTY_MAP);
Run Code Online (Sandbox Code Playgroud)
然后开始JUnit测试验证
但我有异常
org.openqa.selenium.WebDriverException: No command or response codec has been defined. Unable to proceed
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'WPANDBW7HYD', ip: '192.168.56.1', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_74'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:154)
Run Code Online (Sandbox Code Playgroud)
在 selenium 中,您只需要一个要连接的会话的调试器地址即可。如果您想知道什么是调试器地址,它只是运行会话的本地主机地址,它看起来像localhost:60003. 现在,每种情况都会有所不同。下面是使用 c# 代码的过程。
ChromeOptions option = new ChromeOptions();
option.DebuggerAddress="localhost:60422";// we need to add this chrome option to connect the required session
driver = new ChromeDriver(option);
driver.Navigate().GoToUrl("https://www.google.com/");
希望这可以帮助!!如果需要澄清,请在评论中告诉我。
| 归档时间: |
|
| 查看次数: |
2055 次 |
| 最近记录: |