Selenium自动化神器

Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动。话说回来,PhantomJS不也是一个浏览器吗,那么 Selenium 支持不?答案是肯定的,这样二者便可以实现无缝对接了。Selenium既可以用来自动化测试,可以用来做动态爬取。

Selenium官方下载安装 http://www.seleniumhq.org/docs/index.jsp

在使用Selenium之前需先下载相关浏览器driver,不同的浏览器驱动不一样。这里以谷歌Chrom为例,下载地址:http://chromedriver.storage.googleapis.com/index.html

selenium 中文文档 https://www.gitbook.com/book/wizardforcel/selenium-doc/details

简单使用技巧:

导入模块:

from selenium import webdriver

from selenium.common.exceptions import NoSuchElementException

选择浏览器: driver = webdriver.Firefox()

打开url: driver.get(“http://www.baidu.com”)

等待: driver.implicitly_wait(30)

driver.set_page_load_timeout(30)

driver.set_script_timeout(30)

关闭浏览器: driver.quit()/driver.close()

前进/后退: driver.forward()/driver.back()

刷新: driver.refresh()

返回当前页面标题:driver.title

返回当前页面urldriver.current_url

返回当前浏览器的所有窗口:driver.window_handles

返回当前浏览器的窗口句柄:driver.current_window_handle

选择窗口: driver.switch_to_window(“window_name”)

对话框操作: driver.switch_to_alert() #选择窗口对象

accept()  #点击确认

dismiss() #点击取消

text       #获取文本值

send_keys(“key”)   #输入值

定位元素(单个):driver.find_element(by=”id”,value=None)

Id定位:  driver.find_element_by_id(“id_name”)

Name定位: driver.find_element_by_name(“name”)

Css定位:  driver.find_element_by_css_selector(“#foo”)

Xpath定位:driver.find_element_by_xpath(“//select[@id=’nr’]/option[2]”)

Link定位: driver.find_element_by_link_text(u”链接”)

Tag定位:  driver.find_element_by_tag_name(“foo”)

截取当前页面: driver.get_screenshot_as_file(‘/Screenshots/foo.png’)