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

0

Мне нужно выбрать поле, похожее на раскрывающийся список, но не фактический раскрывающийся список. Поле select показывает значение во всплывающем окне, которое содержит значения и под-значения, мне нужно выбрать значения.

Облицовочные вопросы:

Не удалось идентифицировать объект и не удалось выбрать значение из поля.

Я попытался для cssSelector идентифицировать объект: "div [class= 'mailval'] [title= 'Breast> Both']". Это не работает.

Ниже приведен код HTML:

<div class="rowDiv ">
   <label for="bodypart">Body Part</label>
   <div id="bodypart_box_1">
       <div style="position:absolute;left:185px;z-index: 20">
           <ul class="parent">
               <li>
                   <div id="main" class="mailval">events=Object { click=[1]}handle=function()
                       <input id="bodypart_1" class="bodypart" type="text" onfocus="if($(this).hasClass('disabled')){$(this).blur();}" readonly="readonly" value="Select One" name="bodypart_1" title="">
                       <input id="actualBodypart_1" type="hidden" value="Breast" name="actualBodypart_1">
                   </div>
                   <ul id="bodyPartList_1" class="top sub bodyPartList" style="display: none;">olddisplay="block"
                       <li>
                           <div class="mailval fly" title="Breast" originaltitle="Breast">Breast</div>events=Object { click=[1], mouseover=[1]}handle=function()
                           <ul>
                               <li>
                                   <div class="mailval" title="Breast > Both" originaltitle="Breast > NULL > Both">Both</div>events=Object { click=[1], mouseover=[1]}handle=function()
                               </li>
                               <li>
                                   <div class="mailval" title="Breast > Left" originaltitle="Breast > NULL > Left">Left</div>events=Object { click=[1], mouseover=[1]}handle=function()
                               </li>
                               <li>
                                   <div class="mailval" title="Breast > Right" originaltitle="Breast > NULL > Right">Right</div>events=Object { click=[1], mouseover=[1]}handle=function()
                               </li>
                           </ul>
                       </li>
                   </ul>
               </li>
           </ul>
           <div style="clear:both"></div>
       </div>
       <p id="bodypart-error" class="errorMessage ml161px pa ie7ErrorFix" style="top:140px !important"></p>
   </div>
  • 0
    как это вопрос Java?
  • 0
    Мне нужно выбрать значение в моем селене, используя Java.
Показать ещё 6 комментариев
Теги:
xpath
selenium

1 ответ

0

Правильный способ использования атрибута class в селекторе - это ему должно предшествовать "."

ваш селектор можно переписать следующим образом,

div[title='Breast > Both'].mailval

вы также можете попробовать этот селектор, атрибуту id должно предшествовать "#",

#bodyPartList_1 > div div[title='Breast > Both'].mailval

обратитесь к этому, чтобы узнать больше о селекторах

EDIT: согласно вашему html всплывающее окно появляется только при зависании или нажатии. Это действие может быть выполнено с использованием JavascriptExecuter,

((JavascriptExecutor)driver).executeScript("$('#bodyPartList_1 > .mailval.fly').click();");

Теперь появится всплывающее окно, вам просто нужно выбрать желаемое значение...

new WebDriverWait(driver,20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div[title='Breast > Both'].mailval"))).click();
  • 0
    Я использовал cssSelector = # bodyPartList_1> div> div [title = 'Breast> Both']. Mailval. Это показывает мне ошибку как «Невозможно найти элемент:». Не могли бы вы помочь мне для идентификации и выбора объекта.
  • 0
    Даже я пытался для xpath = "// * [@ id = 'bodyPartList_1'] / li [1] / div". Элемент идентифицируется, но показывает ошибку: «Элемент в данный момент не виден и поэтому не может взаимодействовать с ...». Как определить объект, когда он не виден?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню