Как выбрать значение в текстовом поле автоматического предложения? - PullRequest
0 голосов
/ 17 февраля 2019

Из текстового поля Я пробовал много способов найти решение, но мне не удалось, поэтому, пожалуйста, помогите мне относительно этого запроса

Веб-сайт: - https://www.goibibo.com/

Внутри этого веб-сайта, когда я пытаюсь выбрать значение из текстового поля автоматического предложения «ОТ», я не смог выбрать его, потому что не могу проверить выпадающий список, поскольку он был динамическим и использовал некоторые функции JavaScript, я полагаю.Пожалуйста, помогите мне с этим

Ответы [ 3 ]

0 голосов
/ 17 февраля 2019

Так как это автоматическое предложение контента, и вы хотите выбрать первый вариант из этого выпадающего списка, вы можете использовать Keys enum селена, и вы можете выполнить выбор, как показано ниже:

driver.get("https://www.goibibo.com/");
WebElement from = driver.findElement(By.id("gosuggest_inputSrc"));
from.sendKeys("Bangalore");

Thread.sleep(3000);
from.sendKeys(Keys.ARROW_DOWN +""+ Keys.ENTER);

ЕслиВы хотите выбрать другой вариант, чем первый, затем вы можете использовать следующие xpaths, чтобы идентифицировать выпадающие опции:

//input[@id='gosuggest_inputSrc']/preceding-sibling::i/following::ul[contains(@id, 'react-autosuggest')]//li

Или

//ul[contains(@id, 'react-autosuggest')]//li

Ниже приведен код для печати всехварианты из этого раскрывающегося и выбрать конкретное значение:

driver.get("https://www.goibibo.com/");
WebElement from = driver.findElement(By.id("gosuggest_inputSrc"));
from.sendKeys("Bangalore");

// Giving some delay so that the auto suggestion drop down will appear      
Thread.sleep(3000);
// Fetching options from dropdown
List<WebElement> dropdownOptions = driver.findElements(By.xpath("//ul[contains(@id, 'react-autosuggest')]//li"));
// Printing all the option text
for(WebElement element : dropdownOptions) {
    System.out.println(element.getText());
}
// Selecting the first option
dropdownOptions.get(0).click();

Я надеюсь, что это помогает ...

0 голосов
/ 17 февраля 2019

Если вам нужен XPath для первой опции автозаполнения, попробуйте

//ul[@id='react-autosuggest-1']/li[@id='react-autosuggest-1-suggestion--0']

. Вы можете заменить 0 на 1, чтобы получить второй вариант, 2 - для третьего варианта и т. Д.

0 голосов
/ 17 февраля 2019

Вы можете использовать приведенный ниже код и вместо отправки значения в жестком коде вы можете читать его через Excel для динамического.

import java.awt.AWTException;
import java.util.concurrent.TimeUnit;

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.testng.annotations.Test;

public class Testing {
	public static WebDriver driver;

	@Test
	public void test() throws InterruptedException, AWTException {
		System.setProperty("webdriver.chrome.driver", "./Driver/chromedriver");
		driver = new ChromeDriver();
		driver.get("https://www.goibibo.com/");
		driver.manage().window().maximize();
		driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);
		WebElement fromDropDwon = driver.findElement(By.xpath("//input[@id='gosuggest_inputSrc']"));
		fromDropDwon.click();
		fromDropDwon.sendKeys("Delhi (DEL)");
		fromDropDwon.sendKeys(Keys.ARROW_DOWN);
		fromDropDwon.sendKeys(Keys.ENTER);
		
	}
}

Пожалуйста, наберите голос, и он соответствует вашим ожиданиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...