Selenium Java - выпадающий выбор, где Style-display отсутствует - PullRequest
0 голосов
/ 10 октября 2019

Когда я пытаюсь выбрать раскрывающийся список с отображением стиля: нет;

параметр 1:

WebElement sysDropDown = driver.findElement(By.id("ctl00_ContentPlaceHolder1_ddlFeedStatus")); 

Select sDropdown = new Select(sysDropDown); 
sDropdown.selectByVisibleText("01 - Quarantined");

Приведенный выше код отображает ошибку:

элемент не взаимодействует: элемент в настоящее время не виден и не может быть изменен

Опция 2:

WebElement hiddenWebElement =driver.findElement(By.xpath("//select[@name='ctl00$ContentPlaceHolder1$ddlFeedStatus']"));

((JavascriptExecutor)driver).executeScript("arguments[0].click()",hiddenWebElement);

Опция 2 распознает раскрывающийся список, но не может выбрать элемент из раскрывающегося списка.

Буду признателен за любую помощь.

Попробовал несколько вариантов, которые я вижу на сайте, но они не сильно помогли

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Не могли бы вы щелкнуть правой кнопкой мыши -> Проверить и посмотреть, действительно ли это выпадающий список? Если раскрывающийся список виден и по-прежнему появляется эта ошибка, он может не отображаться в формате html. Это может выглядеть как единое целое, но может подтвердить, только если вы проверяете или просматриваете код.

Если элемент представляет собой раскрывающийся список HTML, используйте следующий код, чтобы увидеть, работает ли он:

    WebElement sysDropDown = driver.findElement(By.id("ctl00_ContentPlaceHolder1_ddlFeedStatus")); 
    Coordinates coordinate = ((Locatable) sysDropDown).getCoordinates();
    coordinate.onPage();
    coordinate.inViewPort();

    Select sDropdown = new Select(sysDropDown); 
    sDropdown.selectByVisibleText("01 - Quarantined");
0 голосов
/ 10 октября 2019

Вы можете попробовать изменить атрибут style с помощью Javascript, например:

hiddenWebElement = driver.findElement(
    By.xpath("//select[@name='ctl00$ContentPlaceHolder1$ddlFeedStatus']")); 

((JavascriptExecutor)driver).executeScript(
    "arguments[0].style.display = 'block';", hiddenWebElement);

После этого вы можете попробовать клик по Javascript или обычный клик.

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