이것은 내 코드의 기능입니다. (1.) 크롬 브라우저를 열고 footlocker.ca로 이동 (2.) Mens 버튼 (3.) 60 (4) 목록에서 1 임의 제품을 선택하십시오. 제품 이름과 가격을 인쇄하십시오. (5.) 제품 번호 (7) 목록에서 두 번째 무작위 제품을 선택하십시오 (8). 제품 이름을 인쇄하십시오 및 가격 (9.) 선택한 제품 (avaSizes) (10.)의 사용 가능한 모든 크기를 인쇄하십시오. 크롬 브라우저를 닫습니다목록 내의 모든 활성화 된 항목을 인쇄하십시오.
제 문제는 제품의 사용 가능한 크기를 읽지 못하는 것입니다. 나는 내 문제가 xpath에 있다고 생각하지만 다양한 xpath로 인해 문제가되는 코드가 될 수 있으므로 확실하지는 않습니다. 메서드가 호출됩니다 (avaSizes). 누군가 도움이된다면 위대 할 것입니다. 연습을 위해이 작업을 수행하고 있으므로이 코드에 추가 할 수있는 실시간 작업 시나리오 테스트 사례가있는 사람은 나에게 많은 도움이 될 것입니다. 감사.
public class FootlockerExample {
WebElement next;
WebDriver driver = new ChromeDriver();
public void productOne(){
// Open Chrome Browser
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Working\\Workspace\\SeleniumProject\\chromedriver.exe");
// Open Footlocker website and maximize window
driver.get("http://www.footlocker.ca/");
driver.manage().window().maximize();
// Find button element 'Mens' and click
next = driver.findElement(By.xpath("//*[@id='global-nav']/ul/li[1]/a"));
next.click();
// Select a random product
selectRandomProduct();
// Print out the product name and price
String productName = driver.findElement(By.xpath("//*[@id='product_form']/div/span[2]/div/div[1]")).getText();
String Price = driver.findElement(By.xpath("//*[@id='product_form']/div/span[2]/div/div[2]")).getText();
System.out.println("The 1st randomly selected product is " + productName + " and it's cost is " + Price + ".");
// Print all available product sizes
avaSizes();
// Execute new method
productTwo();
}
public void productTwo(){
// Go back a browser page
driver.navigate().back();
// Select a new random product
selectRandomProduct();
// Print out the product name and price
String productName = driver.findElement(By.xpath("//*[@id='product_form']/div/span[2]/div/div[1]")).getText();
String Price = driver.findElement(By.xpath("//*[@id='product_form']/div/span[2]/div/div[2]")).getText();
System.out.println("The 2nd randomly selected product is " + productName + " and it's cost is " + Price + ".");
// Print all available product sizes
avaSizes();
driver.close();
}
public void selectRandomProduct(){
// Find and click on a random product
List<WebElement> allProducts = driver.findElements(By.xpath("//*[@id='endecaResultsWrapper']/div[3]//img"));
Random rand = new Random();
int randomProduct = rand.nextInt(allProducts.size());
allProducts.get(randomProduct).click();
}
public void avaSizes(){
// Find all the available shoe sizes for each randomly selected product
List<WebElement> avaSizes = driver.findElements(By.xpath("//*[@id='product_sizes']"));
int totalSizes = 0;
for(int i=0; i<avaSizes.size(); i++){
if(avaSizes.get(i).isEnabled()==true){
avaSizes.get(i).getText();
System.out.println(avaSizes);
totalSizes++;
}else{
System.out.println("Out of stock in all sizes.");
}
}
System.out.println("This product is available in: " + totalSizes + " sizes.");
}
public static void main(String[] args) {
FootlockerExample obj1 = new FootlockerExample();
obj1.productOne();
}
}
당신은 HTML 코드를 게시 할 수 있습니까? –
@ShubhasmitGupta Marius D.의 도움으로 문제를 해결했습니다. 로직에 코드를 추가하면 작동합니다. 그러나 도와 줘서 고마워. –