невозможно нажать на веб-страницу на веб-странице - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь нажать на веб-элемент и ввести текст внутри него.

Шаги:

  1. Запуск "https://www.phptravels.net/"

  2. Нажмите на вкладку "Туры".

  3. Выполнить операцию отправки ключей в поле поиска.

1.Я попытался использовать щелчок в поле поиска и ввести текст с помощью клавиш отправки, но не смог этого сделать. После этого я выполнил действие щелчка и отправил ключи с помощью javaScript, но это также не работает.

  1. Я написал другой xpath для того же, но без положительных результатов.

// код как показано ниже

public class HandlingDropDown2 {

    static WebElement element;
    static WebDriver driver;

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub

        System.setProperty("webdriver.chrome.driver", "Driver/chromedriver.exe");
        driver = new ChromeDriver();
        driver.manage().window().maximize();        
        driver.get("https://www.phptravels.net/");

        element = driver.findElement(By.xpath("//span[contains(text(),'Tours     ')]"));
        element.click();

        Thread.sleep(2000);

        element = driver.findElement(By.xpath("//button[contains(text(),'Got it!')]"));

        element.click();

        Thread.sleep(2000);

        element = driver.findElement(By.xpath("//div[@id='s2id_autogen5']"));
        JavascriptExecutor executor = (JavascriptExecutor)driver;
        executor.executeScript("arguments[0].click();", element);

        System.out.println("clicked on autogen box");

        //element.click();

        Thread.sleep(2000);

        element = driver.findElement(By.xpath("//div[@class='select2-drop select2-display-none select2-with-searchbox select2-drop-active']"));

        JavascriptExecutor executor2 = (JavascriptExecutor)driver;
        executor2.executeScript("arguments[0].'value='Test';",element);
        //element.sendKeys("test"); 
    }
}

Ожидаемый результат: пользователь должен иметь возможность вводить текст с помощью автоматизации.

Фактический результат: невозможно выполнить щелчок и отправку ключей с помощью JavaScript и простых методов селена.

1 Ответ

0 голосов
/ 05 апреля 2019

Помните о функциональности sendKeys

Во-первых, ваш xPath является элементом div, и вы пытаетесь сделать sendKeys в элементе div, что неправильно.Если вы заметили, есть элемент span с именем «Поиск по списку или названию города».Если вы нажмете там, то ваш элемент ввода станет видимым, где вы можете click() и sendKeys("")

Try,

// click on below span element to get input visibled,
element = driver.findElement(By.xpath("//span[text()='Search by Listing or City Name']"));
element.click();

Тогда ваш элемент ввода теперь доступен, где вы можете нажать и отправить ключи

element = driver.findElement(By.xpath("//div[@id='select2-drop']//input[@class='select2-input'][last()]"));
element.click();
element.sendKeys("test");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...