我正在学习如何使用fitnesse。我试图写一个使用fitnesse与selenium交互的演示连接谷歌的页面,但它不起作用。
My Java's code:
{
package com.demo;
import com.thoughtworks.selenium.DefaultSelenium;
@SuppressWarnings("deprecation")
public class HelloGooglePage {
DefaultSelenium selenium;
public HelloGooglePage(String host, int port, String browser, String baseURL) {
this.selenium = new DefaultSelenium(host, port, browser, baseURL);
System.out.println("hELLO");
this.selenium.start();
}
public boolean open(String URL) {
this.selenium.open(URL);
return true;
}
public boolean type(String locator, String value) {
boolean elementFound = this.selenium.isElementPresent(locator);
if (elementFound) {
this.selenium.click(locator);
}
return elementFound;
}
public boolean close() {
this.selenium.close();
return true;
}
public boolean stop() {
this.selenium.stop();
return true;
}
我的fitnesse代码:fitnesse
错误
我认为如果你简单地说
|HelloGooglePage|
什么都没有,但这是一个场景,你需要像下面的一样定义它
|scenario|HelloGooglePage|
因此,当使用|HelloGooglePage|时,调用上面的场景,并执行该场景下的步骤。根据截图,直接使用了|HelloGooglePage|,但没有在任何地方定义场景。
更多的解释请看这个
这里还有的基本例子
谢谢,Murali
当你调用!|HelloGooglePage|
时,它会试图在你的fixture中找到一个没有参数的构造函数,但它没有得到,所以Fitnesse将该表转换为决策表,并寻找名为"HelloGooglePage"的场景。在这种情况下,请参阅他的回答。
然而,从测试代码来看,您试图做的似乎是调用fixture中的构造函数并逐个执行命令,而不是决策表样式。
在这种情况下,你可以简单地
- 删除线路14
- 添加"!"在15号线前面
Java代码:{
private WebDriver driver;
private WebElement element;
private String URL;
private String elementName;
private String key;
public HelloGooglePage(String URL, String elementName, String key) {
this.setURL(URL);
this.setElementName(elementName);
this.setKey(key);
File file = new File("C:/Selenium/IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
driver = new InternetExplorerDriver();
}
public void open(String URL) {
driver.get(URL);
}
public void findElement(String elementName){
element = driver.findElement(By.name(elementName));
}
public void sendKeys(String key){
element.sendKeys(key);
}
@Test
public void submit(){
element.submit();
Assert.assertEquals("cheese - Google Search", driver.getTitle());
driver.close();
}
public String getURL() {
return URL;
}
public void setURL(String uRL) {
URL = uRL;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getElementName() {
return elementName;
}
public void setElementName(String elementName) {
this.elementName = elementName;
}
Fitnesse脚本:
定义COMMAND_PATTERN{"C:\Program Files\Java\jdk1.7.0_55\bin\Java"-cp%p%m}
路径路径/fitlibrary-20080812.jar
路径路径/fitnesse-20151230.jar
路径路径/junit-4.10.jar
路径/硒离子驱动-2.53.0.jar
路径路径/selenium-java-2.53.0.jar
路径路径/硒服务器-标准-2.53.0.jar
路径目标/类别
定义TEstrongYSTEM{slim}
|进口||com.demo|
定义浏览器类型1{*iexplore}
|script|HelloGooglePage|http://www.google.com|q |奶酪|
|打开|www.google.com|
|findElement|q|
|sendKeys|cheese|
|提交|