Selenium无法创建chromeDriver会话

Starting ChromeDriver 96.0.4664.45 (76e4c1bb2ab4671b8beba3444e61c0f17584b2fc-refs/branch-heads/4664@{#947}) on port 46287
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{browserName=chrome, chromeOptions=org.openqa.selenium.chrome.ChromeOptions@1b550c0, version=, platform=ANY}], required capabilities = Capabilities [{}]
Build info: version: '3.3.0', revision: 'b526bd5', time: '2017-03-07 11:21:31 -0800'
System info: host: '602-80', ip: '192.168.22.80', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_311'
Driver info: driver.version: ChromeDriver
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:178)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:167)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:124)
	at moocTest.TestMain.main(TestMain.java:12)

 其中下面的代码是chromeDriver的版本。

Starting ChromeDriver 96.0.4664.45 (76e4c1bb2ab4671b8beba3444e61c0f17584b2fc-refs/branch-heads/4664@{#947}) on port 46287
Only local connections are allowed.

表示当前的版本为96.0.4664.45。

而Java测试代码为

package moocTest;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class TestMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		WebDriver webDriver = new ChromeDriver();
		
		webDriver.get("http://www.xjtu.edu.cn");
		
		String title = webDriver.getTitle();
		System.out.println("打开网站的标题为:" + title);
		
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		WebElement okElement = webDriver.findElement(By.xpath("/html/body/div[4]/div/div[1]/ul/li[1]/a"));
		
		okElement.click();
		
//		try {
//			Thread.sleep(5000);
//		} catch (InterruptedException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		
//		webDriver.close();
	}

}

使用的selenium-standalone.jar

 版本对应的chromeDriver是ChromeDriver 2.36.540470,chrome是85.0.4183.83_chrome_installer_32。

上述问题在于selenium的版本与chromeDriver和chrome版本不兼容所致,需要确保两者一致。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
您可以使用Java SeleniumChromeDriver来实现对谷歌浏览器进行抓包。下面是一个简单的示例代码: ```java import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.network.Network; public class ChromeNetworkCapture { public static void main(String[] args) { // 设置 ChromeDriver 路径 System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); // 创建 ChromeDriver 实例,并设置 ChromeOptions ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("w3c", false); ChromeDriver driver = new ChromeDriver(options); // 启动开发者工具 DevTools devTools = driver.getDevTools(); devTools.createSession(); // 开始抓包 devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); // 进行相应的操作,执行页面访问等操作 // 结束抓包 devTools.send(Network.disable()); // 关闭浏览器 driver.quit(); } } ``` 以上代码首先设置 ChromeDriver 的路径,然后创建 ChromeOptions 对象,并设置 ExperimentalOption 为 "w3c",这是因为最新版本的 ChromeDriver 默认启用了 W3C WebDriver 协议,而抓包需要使用 DevTools 协议。 接下来,创建 ChromeDriver 实例,并获取 DevTools 对象。然后,调用 DevTools 的 createSession 方法来启动开发者工具会话。 在这个示例中,我们使用 Network.enable 方法来启用网络抓包,然后执行相应的操作。最后,调用 Network.disable 方法来停止抓包。 请注意,您需要根据您实际的 ChromeDriver 路径进行设置,并根据您的需求进行适当的修改和扩展。希望这可以帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小博士海狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值