Selenium
- Selenium简介
- Selenium IDE
- Selenium Grid
- Selenium RC
- Selenium 2.0
- WebDriver API
Selenium简介
Selenium是Web自动化测试工具集,但是并不局限于此,它还支持所有基于Web的管理任务自动化。
Selenium的特点如下:
开源、免费
多浏览器支持:Firefox、Chrome、IE、Opera、Edge
多平台支持:Linux、Windows、Mac
多语言支持:Java、Python、Ruby、C#、JavaScript、C++
对Web页面哟良好的支持
支持分布式测试执行
Selenium有两个版本,它不是由单独一个工具构成,而是由一些插件、类库组成:
Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC
Selenium IDE
Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。
能够快速创建bug重现脚本,在测试人员测试过程中,发现bug之后可以通过IDE将重现的步骤录制下来。
Selenium Grid
Selenium Grid是一种自动化的测试辅助工具,利用Grid可以很方便地实现在多台机器上和异构环境中运行测试用例
Selenium RC
Selenium RC支持多种不语言编写自动化脚本,通过Selenium RC的服务器作为代理服务器去访问应用,从而达到测试的目的
Selenium RC分为Client Libraries和Selenium Server。
Client Libraries用于编写测试脚本,用来控制Selenium Server的库。
Selenium Server负责控制浏览器的行为。
Selenium 2.0
Selenium 2.0 = Selenium 1.0 + WebDriver
Selenium 2.0主推的是Webdriver,可以将其看做是Selenium RC的替代品。因为Selenium为了保持向下的兼容性,在2.0中并没有彻底抛弃Selenium RC。
Selenium RC和WebDriver的区别:
Selenium RC是在浏览器中运行JS应用,使用浏览器内置的JS翻译器来翻译和执行selense命令
WebDriver是通过原生浏览器支持或者浏览器扩展来直接控制浏览器。WebDriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JS 。
WebDriver API
8种定位元素方法
find_element_by_id(” “)—对应id
find_element_by_class_name(“”)—对应class find_element_by_name(” “)—对应name
find_element_by_link_text(” “)—对应链接文本
find_element_by_partial_link_text(” “)—对应部分链接文本,针对较长文本,可以取部分文本
find_element_by_tag_name(” “)—对应标签名,例如input ,div这种
find_element_by_xpath(” “)—对应元素的xpath路径
find_element_by_css_selector(” “)
find_element_by_id(“kw”)=find_element(By.ID,”kw”)
鼠标事件
perform() 执行所有ActionChains中存储的行为
double_click() 双击拖动
move_to_element() 鼠标悬停
键盘事件
send_keys(Keys.BACK_SPACE) 删除键(Backspace)
send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.ENTER)回车键(Enter)
send_keys(Keys.CONTROL,’a’) 全选(Ctrl+A)
send_keys(Keys.CONTROL,’c’)复制(Ctrl+C)
send_keys(Keys.CONTROL,’x’) 剪切(Ctrl+X)
send_keys(Keys.CONTROL,’v’)黏贴(Ctrl+V)