尝试单击时出现java.lang.NullPointerException
当我尝试使用getClickOnHotelTab()方法时,得到java.lang.NullPointerException getClickOnHotelPage方法位于SearchHotelPage页面上。当我尝试在SearchHotelStep上使用此方法时,我得到了java.lang.NullPointerException 这是我的搜索酒店页面:尝试单击时出现java.lang.NullPointerException,java,selenium,selenium-webdriver,nullpointerexception,cucumber,Java,Selenium,Selenium Webdriver,Nullpointerexception,Cucumber,当我尝试使用getClickOnHotelTab()方法时,得到java.lang.NullPointerException getClickOnHotelPage方法位于SearchHotelPage页面上。当我尝试在SearchHotelStep上使用此方法时,我得到了java.lang.NullPointerException 这是我的搜索酒店页面: public class SearchHotelPage { public WebDriver driver; private By c
public class SearchHotelPage {
public WebDriver driver;
private By clickOnHotelTab = By.xpath("//*[@id='PageNavBarSectionList']//a[@title='Hotéis']");
private By destinyClick1 = By.xpath("(//div[@role='button']/span)[3]");
private By destinyClick2 = By.xpath("//input[@placeholder='Destino ou nome do hotel']");
public SearchHotelPage(WebDriver driver) {
this.driver = driver;
}
public WebElement getDestinyClick1() {
return driver.findElement(destinyClick1);
}
public WebElement getDestinyClick2() {
return driver.findElement(destinyClick2);
}
public WebElement getClickOnHotelTab() {
return driver.findElement(clickOnHotelTab);
}
@RunWith(Cucumber.class)
public class SearchHotelStep extends BasePage {
public WebDriver driver;
@When("^Choose destiny or hotel name$")
public void choose_destiny_or_hotel_name() throws Throwable {
SearchHotelPage destinyClick = new SearchHotelPage(driver);
destinyClick.getClickOnHotelTab().click();
//destinyClick.getDestinyClick1();
//destinyClick.getDestinyClick2().sendKeys("cancun");
//destinyClick.getDestinyClick2().click();
}
Scenario: Search Hotel With Travel Insurance # SearchHotelWithTravelInsurance.feature:3
Given The browser is initialized #
SearchAirTicketsStep.the_browser_is_initialized()
When User go to "https://www.turismocity.com.br/" site # SearchAirTicketsStep.user_go_to_site(String)
And Choose destiny or hotel name #
SearchHotelStep.choose_destiny_or_hotel_name()
java.lang.NullPointerException
at pages.SearchHotelPage.getClickOnHotelTab(SearchHotelPage.java:28)
at steps.SearchHotelStep.choose_destiny_or_hotel_name(SearchHotelStep.java:22)
at ?.And Choose destiny or hotel name(SearchHotelWithTravelInsurance.feature:6)
And Choose round trip date #
SearchAirTicketsStep.choose_round_trip_date()
And Choose quantity of guests # SearchHotelStep.choose_quantity_of_guests()
When Click on search button from hotels search #
SearchHotelStep.click_on_search_button_from_hotels_search()
Then The options of hotel are shown #
SearchHotelStep.the_options_of_hotel_are_shown()
Then The page of travel insurance is open #
SearchHotelStep.the_page_of_travel_insurance_is_open()
Then The browser is closed # SearchAirTicketsStep.the_browser_is_closed()
Failed scenarios:
SearchHotelWithTravelInsurance.feature:3 # Scenario: Search Hotel With Travel Insurance
1 Scenarios (1 failed)
9 Steps (1 failed, 6 skipped, 2 passed)
0m9,057s
java.lang.NullPointerException
at pages.SearchHotelPage.getClickOnHotelTab(SearchHotelPage.java:28)
at steps.SearchHotelStep.choose_destiny_or_hotel_name(SearchHotelStep.java:22)
at ?.And Choose destiny or hotel name(SearchHotelWithTravelInsurance.feature:6)
这是我的搜索酒店步骤:
public class SearchHotelPage {
public WebDriver driver;
private By clickOnHotelTab = By.xpath("//*[@id='PageNavBarSectionList']//a[@title='Hotéis']");
private By destinyClick1 = By.xpath("(//div[@role='button']/span)[3]");
private By destinyClick2 = By.xpath("//input[@placeholder='Destino ou nome do hotel']");
public SearchHotelPage(WebDriver driver) {
this.driver = driver;
}
public WebElement getDestinyClick1() {
return driver.findElement(destinyClick1);
}
public WebElement getDestinyClick2() {
return driver.findElement(destinyClick2);
}
public WebElement getClickOnHotelTab() {
return driver.findElement(clickOnHotelTab);
}
@RunWith(Cucumber.class)
public class SearchHotelStep extends BasePage {
public WebDriver driver;
@When("^Choose destiny or hotel name$")
public void choose_destiny_or_hotel_name() throws Throwable {
SearchHotelPage destinyClick = new SearchHotelPage(driver);
destinyClick.getClickOnHotelTab().click();
//destinyClick.getDestinyClick1();
//destinyClick.getDestinyClick2().sendKeys("cancun");
//destinyClick.getDestinyClick2().click();
}
Scenario: Search Hotel With Travel Insurance # SearchHotelWithTravelInsurance.feature:3
Given The browser is initialized #
SearchAirTicketsStep.the_browser_is_initialized()
When User go to "https://www.turismocity.com.br/" site # SearchAirTicketsStep.user_go_to_site(String)
And Choose destiny or hotel name #
SearchHotelStep.choose_destiny_or_hotel_name()
java.lang.NullPointerException
at pages.SearchHotelPage.getClickOnHotelTab(SearchHotelPage.java:28)
at steps.SearchHotelStep.choose_destiny_or_hotel_name(SearchHotelStep.java:22)
at ?.And Choose destiny or hotel name(SearchHotelWithTravelInsurance.feature:6)
And Choose round trip date #
SearchAirTicketsStep.choose_round_trip_date()
And Choose quantity of guests # SearchHotelStep.choose_quantity_of_guests()
When Click on search button from hotels search #
SearchHotelStep.click_on_search_button_from_hotels_search()
Then The options of hotel are shown #
SearchHotelStep.the_options_of_hotel_are_shown()
Then The page of travel insurance is open #
SearchHotelStep.the_page_of_travel_insurance_is_open()
Then The browser is closed # SearchAirTicketsStep.the_browser_is_closed()
Failed scenarios:
SearchHotelWithTravelInsurance.feature:3 # Scenario: Search Hotel With Travel Insurance
1 Scenarios (1 failed)
9 Steps (1 failed, 6 skipped, 2 passed)
0m9,057s
java.lang.NullPointerException
at pages.SearchHotelPage.getClickOnHotelTab(SearchHotelPage.java:28)
at steps.SearchHotelStep.choose_destiny_or_hotel_name(SearchHotelStep.java:22)
at ?.And Choose destiny or hotel name(SearchHotelWithTravelInsurance.feature:6)
这是输出:
public class SearchHotelPage {
public WebDriver driver;
private By clickOnHotelTab = By.xpath("//*[@id='PageNavBarSectionList']//a[@title='Hotéis']");
private By destinyClick1 = By.xpath("(//div[@role='button']/span)[3]");
private By destinyClick2 = By.xpath("//input[@placeholder='Destino ou nome do hotel']");
public SearchHotelPage(WebDriver driver) {
this.driver = driver;
}
public WebElement getDestinyClick1() {
return driver.findElement(destinyClick1);
}
public WebElement getDestinyClick2() {
return driver.findElement(destinyClick2);
}
public WebElement getClickOnHotelTab() {
return driver.findElement(clickOnHotelTab);
}
@RunWith(Cucumber.class)
public class SearchHotelStep extends BasePage {
public WebDriver driver;
@When("^Choose destiny or hotel name$")
public void choose_destiny_or_hotel_name() throws Throwable {
SearchHotelPage destinyClick = new SearchHotelPage(driver);
destinyClick.getClickOnHotelTab().click();
//destinyClick.getDestinyClick1();
//destinyClick.getDestinyClick2().sendKeys("cancun");
//destinyClick.getDestinyClick2().click();
}
Scenario: Search Hotel With Travel Insurance # SearchHotelWithTravelInsurance.feature:3
Given The browser is initialized #
SearchAirTicketsStep.the_browser_is_initialized()
When User go to "https://www.turismocity.com.br/" site # SearchAirTicketsStep.user_go_to_site(String)
And Choose destiny or hotel name #
SearchHotelStep.choose_destiny_or_hotel_name()
java.lang.NullPointerException
at pages.SearchHotelPage.getClickOnHotelTab(SearchHotelPage.java:28)
at steps.SearchHotelStep.choose_destiny_or_hotel_name(SearchHotelStep.java:22)
at ?.And Choose destiny or hotel name(SearchHotelWithTravelInsurance.feature:6)
And Choose round trip date #
SearchAirTicketsStep.choose_round_trip_date()
And Choose quantity of guests # SearchHotelStep.choose_quantity_of_guests()
When Click on search button from hotels search #
SearchHotelStep.click_on_search_button_from_hotels_search()
Then The options of hotel are shown #
SearchHotelStep.the_options_of_hotel_are_shown()
Then The page of travel insurance is open #
SearchHotelStep.the_page_of_travel_insurance_is_open()
Then The browser is closed # SearchAirTicketsStep.the_browser_is_closed()
Failed scenarios:
SearchHotelWithTravelInsurance.feature:3 # Scenario: Search Hotel With Travel Insurance
1 Scenarios (1 failed)
9 Steps (1 failed, 6 skipped, 2 passed)
0m9,057s
java.lang.NullPointerException
at pages.SearchHotelPage.getClickOnHotelTab(SearchHotelPage.java:28)
at steps.SearchHotelStep.choose_destiny_or_hotel_name(SearchHotelStep.java:22)
at ?.And Choose destiny or hotel name(SearchHotelWithTravelInsurance.feature:6)
您能帮助我吗?我不确定selenium是如何工作的,但它看起来像是在SearchHotelStep类中从未分配或创建
WebDriver驱动程序
变量,因此它总是会创建空指针错误
在使用驱动程序之前,您需要创建或分配驱动程序
例如driver=yourCreatedDriver代码>或公共WebDriver=newWebDriver(…)代码>
大概是这样的:
@RunWith(Cucumber.class)
public class SearchHotelStep extends BasePage {
public WebDriver driver = new WebDriver(...);
@When("^Choose destiny or hotel name$")
public void choose_destiny_or_hotel_name() throws Throwable {
SearchHotelPage destinyClick = new SearchHotelPage(driver);
destinyClick.getClickOnHotelTab().click();
}
抱歉,非常感谢!!!这和你上面写的不完全一样,但你的想法是完全正确的,它帮助了我。我非常感激!!!Alex Rudenko,谢谢你的帮助,但是我可以通过另一位成员的评论来解决这个问题。谢谢,伙计!!!