selenium打开chrome出错

在使用selenium启动谷歌Chrome浏览器的时候,是需要用到chromedirver的,两者之间的版本是需要匹配的,否则会出现下面类似的报错:

 

Driver info: driver.version: ChromeDriver
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:192) ~[selenium-remote-driver-3.11.0.jar:?]
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178) ~[selenium-remote-driver-3.11.0.jar:?]
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79) ~[selenium-remote-driver-3.11.0.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:545) ~[selenium-remote-driver-3.11.0.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:209) ~[selenium-remote-driver-3.11.0.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:132) ~[selenium-remote-driver-3.11.0.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181) ~[selenium-chrome-driver-3.11.0.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168) ~[selenium-chrome-driver-3.11.0.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157) ~[selenium-chrome-driver-3.11.0.jar:?]
    at cn.enn.bigdata.webpig.webdriver.ChromeDriverFactory.create(ChromeDriverFactory.java:40) ~[classes/:?]
    at cn.enn.bigdata.webpig.webdriver.WebDriverFactory.produce(WebDriverFactory.java:24) ~[classes/:?]
    at cn.enn.bigdata.webpig.webdriver.WebDriverWrapper.reset(WebDriverWrapper.java:64) ~[classes/:?]
    at cn.enn.bigdata.webpig.webdriver.WebDriverWrapper.<init>(WebDriverWrapper.java:56) ~[classes/:?]
    at cn.enn.bigdata.webpig.webdriver.WebDriverWrapper.<init>(WebDriverWrapper.java:48) ~[classes/:?]
    at cn.enn.bigdata.webpig.crawler.Pigs$CrawlerThread.run(Pigs.java:122) [classes/:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_101]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_101]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_101]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_101]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:18308/status] to be available after 20002 ms
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100) ~[selenium-remote-driver-3.11.0.jar:?]
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187) ~[selenium-remote-driver-3.11.0.jar:?]
    ... 19 more
Caused by: java.util.concurrent.TimeoutException
    at java.util.concurrent.FutureTask.get(FutureTask.java:205) ~[?:1.8.0_101]
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:148) ~[guava-23.6-jre.jar:?]
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75) ~[selenium-remote-driver-3.11.0.jar:?]
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187) ~[selenium-remote-driver-3.11.0.jar:?]
    ... 19 more

我用的是62版本,chromedriver用的是2.33的版本

chromedriver版本支持的Chrome版本
v2.41v67-69
v2.40v66-68
v2.39v66-68
v2.38v65-67
v2.37v64-66
v2.36v63-65
v2.35v62-64
v2.34v61-63
v2.33v60-62
v2.32v59-61
v2.31v58-60
v2.30v58-60
v2.29v56-58
v2.28v55-57
v2.27v54-56
v2.26v53-55
v2.25v53-55
v2.24v52-54
v2.23v51-53
v2.22v49-52
v2.21v46-50
v2.20v43-48
v2.19v43-47
v2.18v43-46
v2.17v42-43
v2.13v42-45
v2.15v40-43
v2.14v39-42
v2.13v38-41
v2.12v36-40
v2.11v36-40
v2.10v33-36
v2.9v31-34
v2.8v30-33
v2.7v30-33
v2.6v29-32
v2.5v29-32
v2.4v29-32

下面是谷歌浏览器与chromedriver的版本对应关系,供参考

驱动的下载地址如下: 
http://chromedriver.storage.googleapis.com/index.html

或者

http://npm.taobao.org/mirrors/chromedriver/

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Selenium 是一种自动化测试框架,可以用来模拟用户登录操作。 下面是一个基于 Python 的简单示例: ``` from selenium import webdriver # 启动浏览器驱动 driver = webdriver.Firefox() # 访问登录页面 driver.get("https://www.example.com/login") # 查找用户名和密码输入框,并输入值 username = driver.find_element_by_id("username") password = driver.find_element_by_id("password") username.send_keys("your_username") password.send_keys("your_password") # 提交表单 driver.find_element_by_id("submit").click() # 检查是否登录成功 if driver.current_url == "https://www.example.com/dashboard": print("登录成功!") else: print("登录失败!") # 关闭浏览器 driver.quit() ``` 在上面的示例中,我们使用了 Selenium 的 webdriver 模块,并启动了一个 Firefox 浏览器驱动。然后,我们通过 `driver.get` 方法访问了登录页面,并使用 `driver.find_element_by_id` 方法查找了用户名和密码输入框。最后,我们使用了 `driver.current_url` 属性检查是否登录成功。 ### 回答2: selenium 是一种用于自动化测试的工具,可以模拟用户操作浏览器,并且可以在不同的浏览器上运行,如Chrome、Firefox等。使用selenium进行登录操作,一般需要以下步骤: 1. 导入selenium库,确保已经安装了相应的浏览器驱动程序,如ChromeDriver或FirefoxDriver。 2. 创建一个WebDriver对象,指定要使用的浏览器,如Chrome或Firefox。 3. 使用WebDriver对象打开要登录的网址。 4. 定位到登录页面的用户名和密码输入框,并使用sendKeys方法输入用户名和密码。 5. 定位到登录按钮,并使用click方法点击登录按钮。 6. 若登录成功,则可以进行后续的操作;若登录失败,则可以判断出错原因并进行相应的处理。 示例代码如下: ```python from selenium import webdriver # 创建一个ChromeDriver对象 driver = webdriver.Chrome() # 打开登录页面 driver.get('https://example.com/login') # 定位到用户名输入框,输入用户名 username_input = driver.find_element_by_id('username') username_input.send_keys('your_username') # 定位到密码输入框,输入密码 password_input = driver.find_element_by_id('password') password_input.send_keys('your_password') # 定位到登录按钮,点击登录 login_button = driver.find_element_by_id('login_button') login_button.click() # 登录成功后进行后续的操作 # 关闭浏览器 driver.quit() ``` 以上是一个简单的selenium登录示例,可以根据实际情况进行相应的修改和扩展。 ### 回答3: Selenium是一个自动化测试工具,可以用于模拟浏览器的操作。它也可以用来进行网站的登录操作。 在使用Selenium进行登录操作时,一般需要以下步骤: 1. 导入Selenium相关的库和驱动程序。需要安装Selenium库,并下载对应浏览器的驱动程序,例如ChromeDriver。 2. 创建一个浏览器实例。可以使用selenium.webdriver包中的WebDriver类,通过指定浏览器驱动的路径来创建一个浏览器实例。 3. 打开登录网页。使用浏览器实例的get()方法,传入登录网页的URL,可以打开相应的网页。 4. 定位并填写用户名和密码。使用浏览器实例的find_element_by_xxx()方法,通过不同的定位方式(例如ID、name、XPath等),找到用户名和密码的输入框,并通过send_keys()方法填入对应的值。 5. 提交登录表单。使用浏览器实例找到提交按钮,并调用其click()方法进行点击,即可提交登录表单。 6. 验证登录结果。可以通过判断登录成功后的页面特定元素是否存在,或者通过检查URL是否发生改变来验证登录是否成功。 7. 关闭浏览器实例。使用浏览器实例的quit()方法,可以关闭浏览器实例,释放资源。 上述就是使用Selenium进行登录操作的大致步骤。根据具体的网页结构和功能,可能需要使用不同的定位方式来定位用户名、密码和登录按钮等元素。在实际使用中,可以根据具体的需求进行调整和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值