В моем списке желаний myntra 41 товар, 19 из которых отсутствуют в наличии. Я попытался распечатать названия продуктов «нет в наличии».
элементы «нет в наличии» имели общее имя класса, по которому я определил имя продукта с помощью xpath, пройдя через родительские и дочерние узлы.
когда я проверил его в консоли, он дал правильный ответ. Он показал 19 товаров, и когда я наведал указатель мыши, он, как и ожидалось, выделил отсутствующие товары. Работает, как и ожидалось, когда я отлаживал код.
Но когда я нажал «Выполнить», он распечатал только 7 продуктов, размер списка был 7 .
Первоначальная страница отображает первые 20 продуктов, а позже отображает оставшиеся по мере прокрутки вниз. Из 20 лучших, 7 нет в наличии. Может это быть причиной. Если это так, как обрабатывать это событие прокрутки?
Вот фрагмент кода:
import java.util.List;
import org.openqa.selenium.By;
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;
public class stockout {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe");
WebDriver driver = new ChromeDriver();
WebDriverWait w =new WebDriverWait(driver,30);
driver.get(myntra login page);
//enter phone number driver.findElement(By.xpath(("//div[@class='signInContainer']/div[2]/div/input"))).sendKeys(phone number);
driver.findElement(By.cssSelector("div.submitBottomOption")).click();
Thread.sleep(2000);
driver.findElement(By.xpath("//div[@class='bottomeLink']/span")).click();
//enter password
driver.findElement(By.xpath("//input[@type='password']")).sendKeys(password);
driver.findElement(By.cssSelector("button.btn.primary.lg.block.submitButton")).click();
Thread.sleep(4000);
//open wishlist
driver.findElement(By.cssSelector("span.myntraweb-sprite.desktop-iconWishlist.sprites-headerWishlist")).click();
//add out of stock elements to a list
List<WebElement> outofstock = driver.findElements(By.xpath("//img[@class='itemcard-outOfStockItemImage itemcard-itemImage']/parent::picture/parent::a/parent::div/parent::div/div[2]/div/p[1]"));
//explicit wait
w.until(ExpectedConditions.visibilityOfAllElements(outofstock));
System.out.println(outofstock.size());
System.out.println("Items out of stock:");
for (WebElement product: outofstock)
{ System.out.println(product.getText());
}
}
}