selenium基本使用之浏览器驱动篇

在pycharm上新建了个项目准备测试,先复制了selenium-python官方文档的一段代码run一下

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("www.baidu.com")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()

结果报错了,报错关键信息如下“'chromedriver' executable needs to be in PATH”
额对chromedriver简单介绍就是

ChromeDriver是Chromium team开发维护的,它是实现WebDriver有线协议的一个单独的服务。ChromeDriver通过chrome的自动代理框架控制浏览器
就是说它是chrome的一个插件,是为了webDriver调用时控制可以控制浏览器自动操作的一个东东了
那么要想让selenium成功的操作chrome浏览器,那么必须下载chromeDriver驱动包

对于之前的这个报错,是驱动没有配置在环境变量里,先下载驱动(下载地址在报错信息的最后),下载完成后:

  • windows 下,新建一个命名为chromedriver文件夹,将解压的chromedriver.exe放进文件夹,再配置进path环境变量

  • Linux下,把下载好的文件放在 /usr/local/bin 目录下就可以了.(在bash_profile文件中添加环境变量也行,反正我嫌麻烦没试过

vim ~/.bash_profile
          export PATH=$PATH:ChromeDriver目录(注意,是存放的目录,不是这个文件,就是bin的目录)
          :wq
          source ~/.bash_profile  

)
再次执行,Chrome浏览器自动打开了,这说明驱动安装成功了.但仍有报错,报错信息如下:

Traceback (most recent call last):
  File "mystyle.py", line 12, in test_search_in_python_org
    driver.get("www.baidu.com")
  File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 309, in get
    self.execute(Command.GET, {'url': url})
  File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 297, in execute
    self.error_handler.check_response(response)
  File "/Users/zhangjia/anaconda/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Cannot navigate to invalid URL"}
  (Session info: chrome=61.0.3163.100)
  (Driver info: chromedriver=2.32.498537 (cb2f855cbc7b82e20387eaf9a43f6b99b6105061),platform=Mac OS X 10.12.6 x86_64)

这是因为url错误,改为''http://www.baidu.com''即可.

你可能感兴趣的:(selenium基本使用之浏览器驱动篇)