Fitnesse wiki 无法正确调用 selenium 方法
Fitnesse wiki unable to call selenium method correctly
我正在尝试编写一个简单的装置来打开浏览器并导航到 www.google.com。当我 运行 wiki 页面时,它以全绿色通过,但浏览器从未打开(我认为该方法甚至不会被 wiki 调用)。有人可以看看我的固定装置和维基,看看我做错了什么吗?非常感谢,
这是 Wiki -
!|SeleniumFitness|
|URL |navigateToSite?|
|http://www.google.com| |
在 运行 之后 -
!|SeleniumFitnesse| java.lang.NoSuchMethodError: org.openqa.selenium.remote.service.DriverCommandExecutor.<init>(Lorg/openqa/selenium/remote/service/DriverService;Ljava/util/Map;)V
|URL |The instance decisionTable_4.setURL. does not exist|navigateToSite?
|http://www.google.com|!The instance decisionTable_4.navigateToSite. does not exist |
这是固定装置 -
package FitNesseConcept.fitNesse;
import java.util.Properties;
import org.junit.BeforeClass;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeMethod;
//import com.google.common.base.Preconditions.*;
//import com.google.common.collect.Lists;
import fit.ColumnFixture;
public class SeleniumFitnesse extends ColumnFixture {
public static ChromeDriver driver = null;
private String navigateToSite = "";
public String URL = "";
public SeleniumFitnesse() {
Properties props = System.getProperties();
props.setProperty("webdriver.chrome.driver", "/home/ninad/eclipse-workspace/chromedriver");
driver = new ChromeDriver();
}
// SET-GET Methods
public String getURL() {
return URL;
}
public void setURL(String uRL) {
URL = uRL;
}
public String getNavigateToSite() {
return navigateToSite;
}
public void setNavigateToSite(String navigateToSite) {
this.navigateToSite = navigateToSite;
}
// Navigate to URL
public void navigateToSite() throws Throwable {
System.out.println("Navigating to Website");
try {
driver.navigate().to(URL);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
你得到了一些很好的建议作为评论 - 但直接回答你的问题,对于你写的 old-style ColumnFixture,方法 "navigateToSite" 确实不会打电话。
这些fixture样式已经不常用了,首选Slim,文档中的fitnesse实例会告诉你如何使用Slim样式。但是,对于您编写的列固定装置,如果您想要调用一个方法,它需要是一个“?” header 行中方法的以下名称。
查看柱夹具的基本文档:
http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.BasicFitFixtures.ColumnFixture
你是mis-using专栏固定装置,即使是旧风格。列夹具的模式是 "here is a series of columns that represent inputs, now here is a method call I want to make to get the output and check result"。浏览网站通常不符合这种模式。在旧式 fitnesse 中,它可能会被 ActionFixture 接近:
http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.BasicFitFixtures.ActionFixture
在较新的 Slim 样式中,场景 Table.
非常适合导航和检查您所在的位置
http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.SliM.ScenarioTable
一般而言,通过 wiki 进行 WebDriver/Selenium 测试值得额外考虑一下它是否是您最好的媒介。 Fitnesse 真正被设计成一个协作工具,用于直接针对源代码记录和验证业务需求。
这是一个如何使用 ColumnFixture 的示例,尽管 ColumnFixture 又不完全合适:
|url|navigateToUrl?|
|www.google.com| |
java class:
public String url;
public void navigateToUrl() {
}
如果导航正常,您可以 return "OK",或者如果需要,return 页面标题而不是 void。
我正在尝试编写一个简单的装置来打开浏览器并导航到 www.google.com。当我 运行 wiki 页面时,它以全绿色通过,但浏览器从未打开(我认为该方法甚至不会被 wiki 调用)。有人可以看看我的固定装置和维基,看看我做错了什么吗?非常感谢,
这是 Wiki -
!|SeleniumFitness|
|URL |navigateToSite?|
|http://www.google.com| |
在 运行 之后 -
!|SeleniumFitnesse| java.lang.NoSuchMethodError: org.openqa.selenium.remote.service.DriverCommandExecutor.<init>(Lorg/openqa/selenium/remote/service/DriverService;Ljava/util/Map;)V
|URL |The instance decisionTable_4.setURL. does not exist|navigateToSite?
|http://www.google.com|!The instance decisionTable_4.navigateToSite. does not exist |
这是固定装置 -
package FitNesseConcept.fitNesse;
import java.util.Properties;
import org.junit.BeforeClass;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeMethod;
//import com.google.common.base.Preconditions.*;
//import com.google.common.collect.Lists;
import fit.ColumnFixture;
public class SeleniumFitnesse extends ColumnFixture {
public static ChromeDriver driver = null;
private String navigateToSite = "";
public String URL = "";
public SeleniumFitnesse() {
Properties props = System.getProperties();
props.setProperty("webdriver.chrome.driver", "/home/ninad/eclipse-workspace/chromedriver");
driver = new ChromeDriver();
}
// SET-GET Methods
public String getURL() {
return URL;
}
public void setURL(String uRL) {
URL = uRL;
}
public String getNavigateToSite() {
return navigateToSite;
}
public void setNavigateToSite(String navigateToSite) {
this.navigateToSite = navigateToSite;
}
// Navigate to URL
public void navigateToSite() throws Throwable {
System.out.println("Navigating to Website");
try {
driver.navigate().to(URL);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
你得到了一些很好的建议作为评论 - 但直接回答你的问题,对于你写的 old-style ColumnFixture,方法 "navigateToSite" 确实不会打电话。
这些fixture样式已经不常用了,首选Slim,文档中的fitnesse实例会告诉你如何使用Slim样式。但是,对于您编写的列固定装置,如果您想要调用一个方法,它需要是一个“?” header 行中方法的以下名称。
查看柱夹具的基本文档: http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.BasicFitFixtures.ColumnFixture
你是mis-using专栏固定装置,即使是旧风格。列夹具的模式是 "here is a series of columns that represent inputs, now here is a method call I want to make to get the output and check result"。浏览网站通常不符合这种模式。在旧式 fitnesse 中,它可能会被 ActionFixture 接近:
http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.BasicFitFixtures.ActionFixture
在较新的 Slim 样式中,场景 Table.
非常适合导航和检查您所在的位置http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.SliM.ScenarioTable
一般而言,通过 wiki 进行 WebDriver/Selenium 测试值得额外考虑一下它是否是您最好的媒介。 Fitnesse 真正被设计成一个协作工具,用于直接针对源代码记录和验证业务需求。
这是一个如何使用 ColumnFixture 的示例,尽管 ColumnFixture 又不完全合适:
|url|navigateToUrl?|
|www.google.com| |
java class:
public String url;
public void navigateToUrl() {
}
如果导航正常,您可以 return "OK",或者如果需要,return 页面标题而不是 void。