最近基于selenium寫了一個python小工具,記錄下學習記錄,自己運行的環境是Ubuntu 14.04.4, Python 2.7,Chromium 49.0,ChromeDriver 2.16
selenium簡介
selenium提供了一個通用的接口,可模擬用戶來操作瀏覽器,比如用于自動化測試等.
selenium的核心是WebDriver,它提供了一組接口,這些接口能夠操作各種跨平臺的瀏覽器.各大瀏覽器廠商.
各大瀏覽器廠商也支持Selenium,將其作為瀏覽器的一部分.
selenium工具集提供了WebDriver,Selenium IDE,Selenium-Grid等
Selenium 1.0 + WebDriver = Selenium 2.0
Selenium WebDriver是Selenium Remote Control(Selenium-RC)的繼承者.
selenium基本使用
selenium運行需要什么
主要包括三部分:selenium selenium,瀏覽器driver,瀏覽器selenium selenium是一組通用的接口,而不同的瀏覽器提供其自身的driver(大部分是官方的),瀏覽器則被模擬控制操作的終端.
安裝
pip install selenium --upgradeapt-get install chromium-browserwget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux`getconf LONG_BIT`.zipunzip chromedriver_linux32.zipcp chromedriver /usr/local/sharechmod +x /usr/local/share/chromedriverln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver ln -s /usr/bin/chromedriver /usr/local/share/chromedriver
簡單的使用
from selenium import webdriverdriver = webdriver.Chrome('/usr/local/bin/chromedriver')driver.get('http://mail.sina.net');print(driver.title)API使用
可參考/usr/local/lib/python2.7/dist-packages/selenium
Chrome WebDriver
代碼如下:
selenium.webdriver.chrome.webdriver.WebDriver(executable_path='chromedriver', port=0, chrome_options=None, service_args=None, desired_capabilities=None, service_log_path=None)
ChromeOptions
可以通過ChromeDriver session配置ChromeDriver session ChromeDriverconvenient methods for setting ChromeDriver-specific capabilities
from selenium.webdriver.chrome.options import Optionschrome_options = Options()chrome_options.add_argument("--disable-extensions")chrome_options.add_argument('--disable-logging')chrome_options.add_experimental_option('prefs', {'download.default_directory':'/tmp'})chrome_options.binary_location='/usr/bin/chromium-browser'driver = webdriver.Chrome(chrome_options=chrome_options)直接使用DesiredCapabilities
ChromeOptions是構建在DesiredCapabilities之上的,為了使用DesiredCapabilities,必須知道capability的Key/value對.
chrome_options = Options()capabilities={}capabilities['platform'] = "WINDOWS"capabilities['version'] = "10"capabilities.update(chrome_options.to_capabilities())driver = webdriver.Chrome(desired_capabilities=capabilities)
新聞熱點
疑難解答