На странице мобильного поиска Flipkart (https://www.flipkart.com/search?q=samsung&otracker=search&otracker1=search&marketplace=FLIPKART&as-show=on&as=off) я пытаюсь установить фильтр цен (минимальная цена = 250 и максимальная = 25000). Я написал ниже код для этого:
WebElement slider1 = driver.findElement(By.xpath("//div[@class='_3G9WVX _2N3EuE']"));
WebElement slider2 = driver.findElement(By.xpath("//div[@class='_3G9WVX oVjMho']"));
Thread.sleep(3000);
act.dragAndDropBy(slider2, -60, 0).build().perform();
Thread.sleep(3000);
act.dragAndDropBy(slider1, 30, 0).build().perform();
, но он выбрасывает Нет такого исключения элемента:
no such element: Unable to locate element: {"method":"xpath","selector":"//div[@class='_3G9WVX _2N3EuE']"}
У меня есть два запроса:
- Почему это выдает исключение, даже если xpath верен?
- Как установить минимальную и максимальную цену с помощью ползунка?
Ниже приведен полный код на тот случай, если вам нужно проверить:
package seleniumtestingscript;
import java.util.HashMap;
import java.util.Map;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
//1. Open Flipkart
//2. Click on MObile(Go quickly to > MObiles)
//3. Search Samsung
//4. Select price range using slider min=250 ma=25000
//5. Print the phone name
//6. Then clear the filter
//7. Remove price filter
//8. Print the phone name
public class FlipKartDemo {
WebDriver driver;
WebDriverWait wait;
JavascriptExecutor js;
Select select;
@BeforeMethod
public void launch_Browser() {
System.setProperty("webdriver.chrome.driver",
"G:\\Sheetal\\Selenium_Program_Practice\\Driver\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.managed_default_content_settings.geolocation", 2);
options.setExperimentalOption("prefs", prefs);
driver = new ChromeDriver(options);
String URL = "https://www.flipkart.com/";
driver.get(URL);
driver.manage().window().maximize();
}
@Test
public void printPhoneName() throws InterruptedException
{
WebElement closeicon = driver.findElement(By.xpath("//button[contains(text(),'✕')]"));
if (closeicon.isDisplayed()) {
closeicon.click();
Thread.sleep(5000);
Actions act = new Actions(driver);
wait = new WebDriverWait(driver, 15);
WebElement Electronics = driver.findElement(By.xpath("//span[contains(text(),'Electronics')]"));
act.moveToElement(Electronics).build().perform();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("(//a[@title='Mobiles'])[position()=1]"))).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@title='Search for products, brands and more']"))).sendKeys("samsung");;
driver.findElement(By.xpath("//button[@type='submit']")).click();
WebElement slider1 = driver.findElement(By.xpath("//div[@class='_3G9WVX _2N3EuE']"));
WebElement slider2 = driver.findElement(By.xpath("//div[@class='_3G9WVX oVjMho']"));
Thread.sleep(3000);
act.dragAndDropBy(slider2, -60, 0).build().perform();
Thread.sleep(3000);
act.dragAndDropBy(slider1, 30, 0).build().perform();
} else {
}
}
}