Java 如何在eclipse中执行页面对象程序?
我基本上是在尝试用Selenium在java中运行一个示例页面对象框架。我已经尝试运行一些网站和论坛提供的一些示例类。但出于某种原因,它似乎不起作用。我不知道我是否遗漏了什么。请帮忙。多谢各位 我试过这些例子- 上面是我正在使用的page factory类 下面是页面对象Java 如何在eclipse中执行页面对象程序?,java,eclipse,selenium,Java,Eclipse,Selenium,我基本上是在尝试用Selenium在java中运行一个示例页面对象框架。我已经尝试运行一些网站和论坛提供的一些示例类。但出于某种原因,它似乎不起作用。我不知道我是否遗漏了什么。请帮忙。多谢各位 我试过这些例子- 上面是我正在使用的page factory类 下面是页面对象 package google; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; //
package google;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
//import org.openqa.selenium.firefox.FirefoxDriver;
public class GoogleSearchPage {
protected WebDriver driver;
private WebElement q;
private WebElement btnG;
public GoogleSearchPage(WebDriver driver) {
this.driver = driver;
}
public void open(String url) {
driver.get(url);
}
public void close() {
driver.quit();
}
public String getTitle() {
return driver.getTitle();
}
public void searchFor(String searchTerm) {
q.sendKeys(searchTerm);
btnG.click();
}
public void typeSearchTerm(String searchTerm) {
q.sendKeys(searchTerm);
}
public void clickOnSearch() {
btnG.click();
}
}
堆栈跟踪显示
失败:当您搜索CatsResultpGetTitleShouldContacts时,安装TestNG测试框架以自动生成报告,因为您的Web元素没有被任何选择器绑定,所以
页面工厂失败。(它不知道如何找到这些)
在每个web元素之前添加@FindBy
注释。e、 g
@FindBy(css = "[name='q']") public WebElement q;
@Findby(css = "[name='btnG]") public WebElement btnG;
您将在@Findby
下面得到红色下划线。只需按Ctrl+Shift+O键将其导入即可。这是非常不具体的。请告诉我们什么失败了。有堆栈跟踪吗?我已经添加了我正在使用的代码段。g
和btnG
在哪里初始化?'q'和'btnG',它们分别是来自谷歌主页的文本框和搜索按钮的名称,它们是我知道的在这里使用的web元素。请看sircapsalots的回答,了解我为什么问……嘿,Jaydev,请把你的整个堆栈跟踪放在帖子里。如果这不起作用,很难解释出什么地方出了问题。
@FindBy(css = "[name='q']") public WebElement q;
@Findby(css = "[name='btnG]") public WebElement btnG;