我对硒感到非常困惑。
全新的自动化测试并努力争取立足硒。
http://www.seleniumhq.org/projects/webdriver/
我得到了编写测试的概念,并且使用量角器进行了角度测量,但是我需要在特定项目中使用selenium而不确定从哪里开始。
首先,我只想编写一些简单的客户端测试,但我不知道从哪里开始使用Selenium,我读了他们的文档,但并不是真的更聪明......
答案 0 :(得分:1)
webdriver测试只是一个脚本,用许多兼容语言(java,python等)之一编写。该脚本可在任何计算机上运行。在开发期间,它通常在本地计算机上运行,但最终您的测试可以在持续集成服务器上运行。
Webdriver有两种操作模式:它可以在运行脚本的同一台机器上打开浏览器,或者它可以向selenium网格集线器发送请求,该集线器将在其中一个节点上打开浏览器。
作为一个简单的例子,这里是python中的selenium测试的完整工作示例(取自python selenium bindings Getting Started页面):
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()
如果你安装了python和selenium库,你可以将这个文件保存到" example_test.py"然后使用python example_test.py
这是一个类似的测试,这是javascript中的一个,取自WebDriverJS User's Guide。你可以像运行任何javascript程序一样运行它。
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
driver.get('http://www.google.com');
driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.name('btnG')).click();
driver.wait(function() {
return driver.getTitle().then(function(title) {
return title === 'webdriver - Google Search';
});
}, 1000);
driver.quit();
答案 1 :(得分:1)
为了对您的问题给出一个有机的答案,当您运行硒Firefox浏览器测试时,它会启动一个本地特设的#Selenium网格集线器监听器"在30005的端口或测试开始时的某些东西。然后,您编写的代码通过向localhost:30005
发送本地http请求,以JSON格式与该本地端口进行通信。 "网格中心"监听该端口知道如何与本地Web浏览器通信并通过回答通过该端口传递的命令来控制它。在测试结束时," selenium网格集线器监听端口"关闭。
如果你做了一些阅读并试着了解" Selenium Grid Hub"工作并了解" WebDriver Wire Protocol"然后它可以帮助您开始理解我上面解释的内容。
答案 2 :(得分:0)
请务必阅读官方的Selenium文档以获取参考资料,但如果您使用的是Java,则可以使用Conductor framework开始 它是一个特定于Java的DSL,因此不会与其他任何人合作。
测试看起来像这样:
@Config(url="http://google.com", browser=Browsers.CHROME)
public class MyTest {
@Test
public void testGoogle() {
// a quick google search
setText(By.name("q"), "something")
.click("[name='btnG']");
}
}