我在expedia.com网站上找不到使用pagefactory使用id或xpath的按钮

时间:2019-08-20 20:50:42

标签: java selenium selenium-webdriver

在expedia.com网站上,我找不到使用pagefactory使用id或xpath的按钮。它说没有这样的元素:无法找到元素“ tab-flight-tab-flp”。 我尝试使用id和xpath。它给出了相同的错误。我想知道这正在发生吗? 它说没有这样的元素:无法找到元素“ tab-flight-tab-flp”。 我尝试使用id和xpath。它给出了相同的错误。我想知道这正在发生吗? 它说没有这样的元素:无法找到元素“ tab-flight-tab-flp”。 我尝试使用id和xpath。它给出了相同的错误。我想知道这正在发生吗?

package UsefulPackages;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;

public class SearchPageFactory {      

       WebDriver adriver;     

       @FindBy(id="tab-flight-tab-flp")
       WebElement flightTab;      
      
       //constructor
       public SearchPageFactory(WebDriver driver) {

             this.adriver = driver;
             PageFactory.initElements(driver, this);
       }     

       public void clickFlightTab(){            

             flightTab.click();          

       }     

}

 

import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import UsefulPackages.SearchPageFactory;

public class FrameworkTestCase {

       WebDriver achromeDriver;
       String abaseUrl;

      SearchPageFactory apagefactory;            

       @Before
       public void setUp() throws Exception {                            

             abaseUrl = "http://www.expedia.com";                           

            System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\ChromeDirver\\chromedriver.exe");                           

            achromeDriver = new ChromeDriver();                           

            apagefactory = new SearchPageFactory(achromeDriver);                           

            chromeDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
            achromeDriver.manage().window().maximize();
            System.out.println("setup completed");

       }            

      @Test

         public void test() {                            

               achromeDriver.get(abaseUrl);                                                         

               WebDriverWait awaittime = new WebDriverWait(achromeDriver, 10);      

               System.out.println("page factory created");                           

                apagefactory.clickFlightTab();
              }

 

 

}

 

1 个答案:

答案 0 :(得分:1)

您要获取Flights按钮吗?

picture

它将通过以下方式实现:

  1. id查找:

    @FindBy(id="tab-flight-tab-hp")

  2. xpath查找:

    @FindBy(xpath="//button[@id='tab-flight-tab-hp']")