无法在 fitnesse 中测试硒
Can't test selenium in fitnesse
我正在学习如何使用 fitnesse 。我尝试使用 fitnesse interact with selenium connect google 的页面编写演示,但它不起作用。
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
我想如果你简单地说
|HelloGooglePage|
不过是场景,你需要像下面这样定义它
|scenario|HelloGooglePage|
所以什么时候用过|你好谷歌页面|上面调用的场景和该场景下的步骤将被执行。根据屏幕截图,直接使用 |HelloGooglePage|但未在任何地方定义场景。
更多解释请看this
还有here是基本的例子
谢谢,
穆拉利
当您调用 !|HelloGooglePage|
时,它会尝试在您的 fixture 中查找没有参数的构造函数,但未能找到,因此 Fitnesse 将 table 转换为决策 table 并查找名为 "HelloGooglePage" 的场景。那样的话,参考他的回答。
但是,从你的测试代码来看,你试图做的似乎是调用 fixture 中的构造函数并一条一条地执行命令,而不是决定 table 样式。
在这种情况下,您只需
- 删除第 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;
}
健身脚本:
!define COMMAND_PATTERN {"C:\Program Files\Java\jdk1.7.0_55\bin\java" -cp %p %m}
!路径path/fitlibrary-20080812.jar
!路径path/fitnesse-20151230.jar
!路径path/junit-4.10.jar
!路径path/selenium-ie-driver-2.53.0.jar
!路径path/selenium-java-2.53.0.jar
!路径path/selenium-server-standalone-2.53.0.jar
!路径target/classes
!define TEST_SYSTEM {苗条}
!|进口 |
|com.demo|
!define BrowserType1 {*iexplore}
!|脚本 |HelloGooglePage|http://www.google.com|q|cheese|
|打开 |www.google.com |
|findElement|q |
|sendKeys |奶酪|
|提交 |
我正在学习如何使用 fitnesse 。我尝试使用 fitnesse interact with selenium connect google 的页面编写演示,但它不起作用。
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
我想如果你简单地说
|HelloGooglePage|
不过是场景,你需要像下面这样定义它
|scenario|HelloGooglePage|
所以什么时候用过|你好谷歌页面|上面调用的场景和该场景下的步骤将被执行。根据屏幕截图,直接使用 |HelloGooglePage|但未在任何地方定义场景。
更多解释请看this
还有here是基本的例子
谢谢, 穆拉利
当您调用 !|HelloGooglePage|
时,它会尝试在您的 fixture 中查找没有参数的构造函数,但未能找到,因此 Fitnesse 将 table 转换为决策 table 并查找名为 "HelloGooglePage" 的场景。那样的话,参考他的回答。
但是,从你的测试代码来看,你试图做的似乎是调用 fixture 中的构造函数并一条一条地执行命令,而不是决定 table 样式。
在这种情况下,您只需
- 删除第 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;
}
健身脚本:
!define COMMAND_PATTERN {"C:\Program Files\Java\jdk1.7.0_55\bin\java" -cp %p %m}
!路径path/fitlibrary-20080812.jar
!路径path/fitnesse-20151230.jar
!路径path/junit-4.10.jar
!路径path/selenium-ie-driver-2.53.0.jar
!路径path/selenium-java-2.53.0.jar
!路径path/selenium-server-standalone-2.53.0.jar
!路径target/classes
!define TEST_SYSTEM {苗条}
!|进口 | |com.demo|
!define BrowserType1 {*iexplore}
!|脚本 |HelloGooglePage|http://www.google.com|q|cheese|
|打开 |www.google.com |
|findElement|q |
|sendKeys |奶酪|
|提交 |