Не удалось щелкнуть значение в раскрывающемся списке «Ввод» - PullRequest
0 голосов
/ 15 марта 2019

У меня странная проблема. У меня есть не выбрать выпадающий с Id, как показано ниже. Нет тега select, который я могу видеть в коде для этого поля, просто тег ввода, и я не вижу текст, содержащийся в раскрывающемся списке в DOM после выбора значения. StaffSoCategory - это текстовое поле, SelectStaffSoCategory - значок для стрелки раскрывающегося списка, а StaffSoCategoryValue Я полагаю, что для отображаемых значений.

<input type="text" id="StaffSoCategory" style="width: 126px; font-weight: lighter; border: 1px solid gray; height: 25px; float: left; font-size: 12px; color: black; font-family: Arial; background-color: white;" readonly="readonly" class="ui-autocomplete-input" autocomplete="off" disabled="disabled">

<span role="status" aria-live="polite" class="ui-helper-hidden-accessible">4 results are available, use up and down arrow keys to navigate.</span>

<div id="SelectStaffSoCategory" tabindex="0" style="border-style: solid; border-width: 1px 1px 1px 0px; border-color: gray; width: 22px; height: 29px; background-position: center; cursor: pointer; background-image: url('Images/dropdown.png'); background-repeat: no-repeat; float: left; margin-left: 0px; "></div>

***<input id="StaffSoCategoryValue" type="hidden" value="">***

<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" id="ui-id-4" tabindex="0" aria-disabled="false" style="z-index: 1; display: none; top: 584px; left: 829px; width: 148px;"></ul>

Как только я выбираю первое раскрывающееся значение (видимый текст в раскрывающемся списке «Подтверждено»), тогда значение входит в тег, но не в видимый текст значения, которое я вижу, что-то вроде ниже

<input id="StaffSoCategoryValue" type="hidden" value="BCK-Yes">

Есть ли способ щелкнуть первое значение в раскрывающемся списке, которое я пробовал с этим значением "BCK-Yes", и он сказал, что элемент не виден. Я попытался выбрать вход по идентификатору, а затем попытался нажать клавиши и ввести клавиши, которые тоже не работали.

Код, который я пытаюсь это

JavascriptExecutor js = (JavascriptExecutor)driver;     
WebElement revenuePotential = driver.findElement(By.id("SelectStaffSoCategory")); revenuePotential.click(); 
WebElement revenuePotentialValue = driver.findElement(By.id("StaffSoCategoryValue")); 
js.executeScript("arguments[0].click();", revenuePotentialValue); 

Ошибки консоли, которые я получаю:

StaffSoJsFun.js?v=2019020100000:1 Uncaught TypeError: $(...).autocomplete is not a function
    at HTMLDivElement.<anonymous> (StaffSoJsFun.js?v=2019020100000:1)
    at HTMLDivElement.dispatch (jquery-2.0.0.js?v=2019020100000:25)
    at HTMLDivElement.y.handle (jquery-2.0.0.js?v=2019020100000:25)
(anonymous) @ StaffSoJsFun.js?v=2019020100000:1
dispatch @ jquery-2.0.0.js?v=2019020100000:25
y.handle @ jquery-2.0.0.js?v=2019020100000:25

Access to XMLHttpRequest at '' from origin 'xx.com' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

1 Ответ

0 голосов
/ 15 марта 2019

Ну, ввод скрыт, поэтому я не удивлен, что селен говорит, что элемент не виден. Методы, эмулирующие действия пользователя, такие как click() и sendKeys, не смогут воздействовать на скрытые элементы. Тем не менее, я думаю, что может работать следующее:

Сначала сохраните этот элемент в объекте, скажем, element, а затем попробуйте следующий код, чтобы щелкнуть по этому скрытому элементу:

WebDriver driver= new ChromeDriver();   

JavascriptExecutor js = (JavascriptExecutor)driver;

driver.get(desiredURL);

//do all the stuff you want to do before `executeScript()`

js.executeScript("arguments[0].click();", element);

Дайте это шанс?

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