Selenium -> Как выбрать кнопку из класса li [Java]

На моем веб-сайте у меня есть кнопка, на которую я должен навести курсор, чтобы «разблокировать» 4 других пункта меню.

Я хочу навести курсор мыши на свое меню, и это нормально, но я не могу найти элемент, который хочу выбрать, после действия наведения. Код в консоли исчезает после наведения курсора мыши на кнопку, поэтому я не могу найти кнопку с помощью xpath или css. Код из 4 вариантов одинаков, единственное, что их отличает, - это параметр data-name.

Plusknop (основная кнопка, после наведения на нее видны следующие 4 варианта выбора)

  • "Связаться с aanmaken", я хочу нажать на эту
  • 'Виджет aanmaken'
  • 'Contactmoment toevoegen'
  • 'Заак анмакен'

     WebElement plusknop = driver.findElement(By.cssSelector(".top-bar-create-case"));
    
     Actions action = new Actions(driver);
    
     action.moveToElement(plusknop).build().perform();
    
    WebElement contact =  driver.findElement(By.cssSelector("/html/body/div[1]/zs-intern/div[1]/zs-contextual-action-menu/zs-contextual-action-menu-button/div[2]/ul/li[data-name=\"contact\"]"));
    
    contact.click();
    

Exception in thread "main" org.openqa.selenium.InvalidSelectorException: Given css selector expression "/html/body/div1/zs-intern/div1/zs-contextual-action-menu/zs-contextual-action-menu-button/div[2]/ul/li[. = "contact"]" is invalid: InvalidSelectorError: '/html/body/div1/zs-intern/div1/zs-contextual-action-menu/zs-contextual-action-menu-button/div[2]/ul/li[. = "contact"]' is not a valid selector: "/html/body/div1/zs-intern/div1/zs-contextual-action-menu/zs-contextual-action-menu-button/div[2]/ul/li[. = "contact"]"

Все четыре пункта меню имеют одинаковый xpath. Единственное, что их отличает, - это «имя-данные». Это то, что я добавил вручную в код в конце кода. Я хочу выбрать тот, у которого имя-данные "контакт"

Я действительно не могу добавить код, потому что его невозможно выбрать, так как он исчезает, когда я хочу скопировать код. Вот более расширенный кодвведите описание изображения здесь.

Пожалуйста, добавьте соответствующий код в вопрос как код, а не как снимки экрана.

Xan 10.12.2018 14:29

Просто немного сложно понять ваш вопрос. Было бы очень полезно, если бы вы прояснили следующее: 1. Есть ли у вас доступ для изменения html-кода, чтобы включить идентификаторы для желаемого элемента? 2. Что на самом деле означает «гибкий список всплывающих меню»? 3. Включите код в качестве фрагмента кода в вопрос вместо ссылки на снимок экрана.

jumps4fun 10.12.2018 14:30

Кроме того, как найти элемент вручную? у него есть конкретное название? Размещение в DOM? Что отделяет его от других элементов?

jumps4fun 10.12.2018 14:41

Обновил вступление. большое спасибо за ответы. Я немного новичок, так что извините.

Erman Gultop 10.12.2018 16:23

Вы используете cssSelector с xPath. Исключение составляет действительное сообщение об ошибке: данное выражение селектора css ... недопустимо.

Dakshinamurthy Karra 10.12.2018 18:23

Это селектор Css Дакшина. Моя проблема в том, почему он его не найдет. Мои параметры в названии данных "контакт" написаны неправильно? Каковы ваши решения? Я так долго пытался это решить!

Erman Gultop 10.12.2018 22:14

@Erman это нет селектор CSS. Например, «/ html / body» - это Xpath, а «html> body» - это соответствующий селектор CSS.

Dakshinamurthy Karra 11.12.2018 10:27
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
129
0

Другие вопросы по теме