首页 > 其他分享 >webdriver 自动化测试

webdriver 自动化测试

时间:2023-08-01 12:34:37浏览次数:42  
标签:webdriver http element session 测试 自动化 com browser


Selenium 是最流行的自动化测试工具,提供一整套的解决方案,其中webdriver remote方式比较灵活,浏览器可以指定本地或远程。部署也简单,在浏览器端运行java服务,客户端测试用例可以用 Java、Ruby、PHP、Python 编写。 

测试服务器: 

下载地址: http://selenium.googlecode.com/files/selenium-server-standalone-2.20.0.jar 

1. java -jar selenium-server-standalone-2.20.0.jar

Ruby: 

Ruby使用watir-webdriver接口。 

测试代码: 

1. require "watir-webdriver"
2. require "selenium/webdriver/remote/capabilities"
3.   
4. browser = Watir::Browser.new :remote, :url => "http://localhost:4444/wd/hub", :desired_capabilities
5.   
6. browser.goto("www.tudou.com")  
7.   
8. browser.text_field(:id => 'email').set 'test'
9. browser.text_field(:id => 'pwd').set '1234'
10.   
11. browser.button(:class => 'lg_b').click  
12.   
13. puts browser.text.include? 'SHH'
14.   
15. browser.li(:id, "myTudouNav").fire_event("onmouseover")  
16.   
17. browser.a(:xpath, ".//*[@id='myTudouNav']/div/ul/li[12]/a").click  
18.   
19. puts browser.text.include? 'SHH'
20.   
21. js = <<JS  
22. '.logo').css('border', '1px solid red');  
23. JS  
24.   
25. browser.execute_script js  
26.   
27. browser.close

安装watir-webdriver: 

1. 安装ruby 1.9.3。下载地址:http://rubyinstaller.org/downloads/ 

2. 安装watir-webdriver。 

    > gem update --system --no-rdoc --no-ri 
    > gem install watir-webdriver --no-rdoc --no-ri 

4. 安装chromedriver,用于支持chrome。 下载地址:http://code.google.com/p/chromedriver/downloads/list 

PHP: 

PHP使用facebook的php-webdriver接口。 

测试代码: 

1. require_once 'php-webdriver/__init__.php';  
2.   
3. $wd_host = 'http://localhost:4444/wd/hub';  
4. $web_driver = new WebDriver($wd_host);  
5.   
6. $session = $web_driver->session('chrome');  
7.   
8. $session->open('http://www.tudou.com');  
9.   
10. $session->element('css selector', '#email')->value(array('value' => str_split('test')));  
11. $session->element('css selector', '#pwd')->value(array('value' => str_split('1234')));  
12.   
13. $session->element('css selector', '.lg_b')->click('');  
14.   
15. echo preg_match('/SSH/s', $session->source()) ? 'ok' : 'error';  
16.   
17. $element = $session->element('id', "myTudouNav");  
18. $session->moveto(array('element' => $element->getID()));  
19.   
20. $session->element('xpath', ".//*[@id='myTudouNav']/div/ul/li[12]/a")->click('');  
21.   
22. $script
23. $('.logo').css('border', '1px solid red');  
24. JS;  
25. $session->execute(array(  
26. 'script' => $script,  
27. 'args' => array(),  
28. ));  
29.   
30. $session->close();

php-webdriver 下载地址:https://github.com/facebook/php-webdriver 

Python: 

测试代码: 

1. from selenium import
2. from selenium.webdriver.remote.command import
3. from selenium.webdriver.common.desired_capabilities import
4.   
5. browser = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME);  
6.   
7. browser.get("http://www.tudou.com/");  
8.   
9. browser.find_element_by_css_selector("#email").send_keys("test")  
10. browser.find_element_by_css_selector("#pwd").send_keys("1234")  
11.   
12. browser.find_element_by_css_selector("input.lg_b").click()  
13.   
14. element = browser.find_element_by_css_selector("#myTudouNav")  
15. browser.execute(Command.MOVE_TO, {'element': element.id})  
16.   
17. browser.find_element_by_xpath(".//*[@id='myTudouNav']/div/ul/li[12]/a").click()  
18.   
19. js = "$('.logo').css('border', '1px solid red');";  
20. browser.execute_script(js)  
21.   
22. browser.close()


selenium python安装方法:easy_install –U selenium 


参考文档(有些网站需要翻X): 

http://openqa.org/ 
http://seleniumhq.org/ 
http://watir.com 
https://github.com/watir/watir-webdriver 
http://code.google.com/p/selenium/ 

http://17test.info/ 
http://www.ibm.com/developerworks/cn/java/j-lo-rubytesting/ 
http://www.ibm.com/developerworks/cn/opensource/os-cn-watir/ 

http://www.facebook.com/notes/facebook-engineering/watir-to-webdriver-unit-test-frameworks/10150314152278920 
http://itreallymatters.net/post/10991877834/facebook-watir-and-testing 

淘宝automan介绍: 
http://qa.taobao.com/wp-content/uploads/2011/06/AutomanUserMenuZH-CN.pdf 

JsonWire协议: 
http://code.google.com/p/selenium/wiki/JsonWireProtocol#Command_Reference

标签:webdriver,http,element,session,测试,自动化,com,browser
From: https://blog.51cto.com/u_16161240/6919551

相关文章

  • 测试工作9年,谈谈我的经历!
    1、我是谁,为什么想来说说?大家好,我是2021年全栈测试开发培训(第2期)的学员,最近周老师在进行第4期招生,我主动找到周老师想来个现身说法,希望能帮助老师招生,周老师自己都说你这么卖力给我宣传,很有托的嫌疑。这里我澄清一下,周老师可没有给我什么招生回扣,哈哈,但是我为什么做这事呢?其实很......
  • 新增员工_功能测试
     debug启动项目,进入测试接口网页 先从登录接口哪里获取到一个jwt的令牌token后面跟的就是直接复制 进入文档管理,全局参数设置  这里因为设置的令牌名称为token所以参数也这么写,粘贴上令牌,类型为header说明我们用的是请求头的方式 设置成功 输入信息进行调试......
  • m基于OFDM+QPSK和DNN深度学习信道估计的无线图像传输matlab仿真,输出误码率曲线,并用
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要       基于OFDM+QPSK和DNN深度学习信道估计的无线图像传输"是一种无线通信系统,它利用正交频分复用(OFDM)和四相位偏移键控(QPSK)技术来传输图像数据,并借助深度神经网络(DNN)来进行信道估计,从......
  • android 单元测试之 JUnit
    android里面做单元测试第一,JUnit。     实用范围:     东西,比如业务逻辑,数据封装,数值计算等等。并不能测试androidapi。第二,采用Instrumentation.Android单元测试的主入口是InstrumentationTestRunner。它相当于JUnit当中TestRunner的作用。你可以将Instrumentat......
  • 02_llvm的IR测试创建函数和代码块
    如果要使用LLVM的能力,则需熟悉如何根据自己的代码生成出llvm的IR,以便提供给llvm使用。测试创建function测试代码如下02_test_function.cpp#include"llvm/IR/Module.h"#include"llvm/IR/LLVMContext.h"#include"llvm/Support/raw_ostream.h"#include"llvm/IR/Function.h&qu......
  • 【Jmeter问题分享】jmeter 中 Content-Type为multipart/form-data的接口的测试
    问题背景:测试项目中需要对前端提交的表单接口进行压力测试,通过fiddler抓包发现Content-Type为multipart/form-data,fiddler重放能正常提交。但是导入到jmeter上却无法成功一直是错误的结果。解决方案刚开始一直在查jmeter如何给Content-Type为multipart/form-data做接口测试,网上......
  • 软件测试|教你如何使用UPDATE修改数据
    简介在SQL(StructuredQueryLanguage)中,UPDATE语句用于修改数据库表中的数据。通过UPDATE语句,我们可以更新表中的特定记录或多条记录,从而实现数据的修改和更新。本文将详细介绍SQLUPDATE语句的语法、用法以及一些注意事项。UPDATE语句SQL是一种用于管理和操作关系型数据库的语言,其......
  • 软件测试|SQL中的LIKE模糊匹配该怎么用?
    SQL中的LIKE模糊匹配解析简介在SQL(StructuredQueryLanguage)中,LIKE是一种用于模糊匹配的操作符。通过使用LIKE,我们可以根据模式匹配的方式进行数据检索,而不仅仅局限于完全匹配。本文将详细介绍SQL中LIKE操作符的语法、用法以及一些示例,帮助您掌握模糊匹配的技巧。LIKE模糊匹配在S......
  • 软件测试|SQL TOP提取顶部数据该如何使用?
    SQLTOP子句:提取数据库中的顶部数据简介在SQL查询语言中,TOP子句是一个非常有用的功能,它允许我们从数据库中提取指定数量的顶部数据记录。本文将深入探讨SQLTOP子句的使用方法,以及在实际应用中的一些常见场景和技巧。SQLTOPSQL是一种用于管理和操作关系型数据库的强大语言,TOP子句......
  • 大家做性能测试都用什么工具
    在进行测试时,选择适合的测试工具至关重要,因为优秀的测试工具能够显著提高工作效率。对于性能测试和自动化测试而言,大多数人会选择传统的JMeter等工具,然而这些工具存在学习成本高、使用门槛高的问题。因此,我在这里向大家推荐一款开源的测试平台:RunnerGo。作为一款全栈测试平台,它不......