Java-Page-Factory-Selenium-Cucumber:无法运行测试
嗨,社区:我对页面工厂有一些问题Java-Page-Factory-Selenium-Cucumber:无法运行测试,java,maven,selenium-webdriver,cucumber,page-factory,Java,Maven,Selenium Webdriver,Cucumber,Page Factory,嗨,社区:我对页面工厂有一些问题 java.lang.NullPointerException at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69) at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(Loca
java.lang.NullPointerException
at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69)
at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38)
at com.sun.proxy.$Proxy17.sendKeys(Unknown Source)
at pages.page_First.searchText(page_First.java:29)
at stepdefs.stepdefs_First.iQueryForCucumberSpringSelenium(stepdefs_First.java:34)
at ✽.I query for "Cucumber Selenium" cucumber spring selenium(file:src/test/resources/features/first.feature:11)
这里是我的特色:
Feature: Navigation Test
Scenario Outline: Search google.com to verify google search is working
Given I go to Google
When I query for "<search>" cucumber spring selenium
And click search
Then google page title should become the first page
Examples:
| search |
| Cucumber Selenium |
页面工厂类:
public class page_First extends BasePage {
public page_First(WebDriver driver) throws IOException {
PageFactory.initElements(driver, this);
}
//////////////////////////////////////////////WEB ELEMENTS//////////////////////////////////////////////////////////
@FindBy(name = "q")
private WebElement searchText;
@FindBy(name="btnK")
private WebElement searchButton;
//////////////////////////////////////////////BASE METHODS//////////////////////////////////////////////////////////
public void searchText(String search) {
searchText.sendKeys(search);
}
public void enterButton (){
clickElement(searchButton);
}
}
和我的步骤定义类:
public class stepdefs_First {
private WebDriver driver;
private page_First page_first = PageFactory.initElements(driver, page_First.class);
public stepdefs_First() throws IOException {
}
@Given("I go to Google")
public void iGoToGoogle() {
System.out.println("navigating through Googl");
}
@When("I query for {string} cucumber spring selenium")
public void iQueryForCucumberSpringSelenium(String search) throws Exception {
page_first.searchText(search);
}
@And("click search")
public void clickSearch() {
page_first.enterButton();
}
@Then("google page title should become the first page")
public void googlePageTitleShouldBecomeTheFirstPage() {
System.out.println("All OK");
}
}
浏览器未打开,并且首先在页面中遇到问题。searchText(搜索)强>
我从Maven(bonygarcia)中的WebDriverManager依赖项获取浏览器,从config.properties获取浏览器、url和操作系统
如果有人能帮我,请。提前感谢似乎
搜索
参数与任何参数都不匹配,并演变为null。
你能试试吗
@When("I query for \"([^\"]*)\" cucumber spring selenium")
而不是
@When("I query for {string} cucumber spring selenium")
你在任何地方调用了
initialization()
方法了吗?不,我不知道怎么做。在这个问题上你还需要帮助吗?是的Fenio:我仍然需要帮助。为了帮助你,我还需要BasePage.java
的源代码,以及你使用的cucumber版本?此外,我们可以在这里聊天,也可以通过电子邮件(在我的个人资料中)与我联系。
@When("I query for {string} cucumber spring selenium")