以下是短節目&在以下網站: https://uk.webuy.com/search/index.php?stext= * &節= & CATID = 956的Java硒的webdriver無法第一項放入籃筐
我想點擊的前三個產品的「我要購買此物品「按鈕& 在頁面右側的VIEW BASKET中查看它們。
出於某種原因,我只能看到第二個和第三個產品。出於某種原因,第一件產品永遠不會讓它進入籃子,&它不會產生錯誤。
只有當我更改以下行:
allButtons.get(0).click();
到:
allButtons.get(0).click();
allButtons.get(0).click();
allButtons.get(0).click();
我會看到在籃下的第一款產品之一發生。
我在做什麼錯?有什麼缺失導致這個問題?
使用Java 1.8 硒WebDrive版本號2.48 Mac OS版本#13年11月10日
謝謝
public class ZWeBuy {
static WebDriver driver;
@Test
public void testProductPurchaseProcess() {
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("https://uk.webuy.com/search/index.php?stext=*§ion=&catid=956");
closePopupIfPresent();
//xpath for all product names in this page
List<WebElement> allNames = driver.findElements(By.xpath("//div[@class='searchRecord']/div[2]/h1/a"));
List<WebElement> allButtons = driver.findElements(By.xpath("//div[@class='action']/div/a[2]/div/span"));
System.out.println("Total names = "+ allNames.size());
System.out.println("Total buttons = "+ allButtons.size());
System.out.println("I= " + 0 + " PRDCT: --- " +allNames.get(0).getText());
allButtons.get(0).click();
WebDriverWait wait = new WebDriverWait(driver,120);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("html/body/div[5]/div[1]/div[3]/div[5]/div[1]/div[1]/div[3]/div/a[2]/div/span")));
System.out.println("I= " + 1 + " PRDCT: --- " +allNames.get(1).getText());
allButtons.get(1).click();
System.out.println("I= " + 2 + " PRDCT: --- " +allNames.get(2).getText());
allButtons.get(2).click();
}
public static void closePopupIfPresent(){
Set<String> winIds = driver.getWindowHandles();
System.out.println("Total windows -> "+ winIds.size());
if(winIds.size() == 2){
Iterator<String> iter = winIds.iterator();
String mainWinID = iter.next();
String popupWinID = iter.next();
driver.switchTo().window(popupWinID);
driver.close();
driver.switchTo().window(mainWinID);
}
}
}
謝謝你,這個代碼,工作得很好,我可以在病房後看到籃子裏的三種產品。 – Fariba
非常感謝@Fariba。你能接受答案嗎? – nilesh
我接受答案,謝謝 – Fariba