Как создать селектор CSS для элемента ввода в соответствии с HTML

Я новичок в Selenium IDE и пытаюсь найти элемент ввода, который находится в двух элементах div. Я не уверен в синтаксисе селектора CSS для этого. Единственное требование - я хотел бы использовать идентификатор элемента ввода, поскольку он согласован на всех сайтах, которые я пытаюсь автоматизировать. Прилагается HTML-код.

P.S. Я использую eclipse и Java

Как создать селектор CSS для элемента ввода в соответствии с HTML

Почему бы не использовать id входа в качестве селектора?

StaticBeagle 25.07.2018 19:26

Как выглядит ваш код? Как говорит @StaticBeagle, а как насчет driver.findElement(By.id("show_hidden"));?

ggorlen 25.07.2018 19:30

В css вы выбираете элемент, используя знак ID #, за которым следует идентификатор, как в вашем примере для ввода #show_hidden {border: 1px solid red;}.

Bharat Makvana 25.07.2018 19:32

@ggorlen Это именно то, что я пробовал в первую очередь, и я получаю ошибку ElementNotFound, поэтому я предполагал, что сначала мне нужно сфокусировать селектор на родительском div.

NickaBrick 25.07.2018 20:01

Это кажется странным. Вы уверены, что модель DOM загружена правильно? Можете ли вы сбросить DOM на Java, вместо того, чтобы смотреть на инструменты разработчика Chrome?

ggorlen 25.07.2018 20:02

Просто небольшое примечание к одному из ваших комментариев - вы не должны сосредоточиться на родительском элементе для поиска по id. document.getElementById("show_hidden") всегда найдет <input id = "show_hidden">, независимо от того, где вы ищите.

Reed Barnes 25.07.2018 20:08

Спасибо за информацию. Должно быть что-то еще, вызывающее ошибку, так как я делаю простой getElementById для этого имени ввода, и оно все еще появляется

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

Ответы 2

Вы можете использовать любой из этих

   .sortable-list .btn-3 input{
      height: 40px;
      border: 1px solid red;
    }

или же

   div div input{
  height: 40px;
  border: 1px solid red;
}

Согласно HTML, которым вы поделились, для вызова click() в теге <input> вы можете использовать следующий cssSelector:

driver.findElement(By.cssSelector("div.sortable_list#upd_list div#widget_tools label[for=show_hidden]")).click();

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

driver.findElement(By.xpath("//div[@class='sortable_list' and @id='upd_list']//div[@id='widget_tools']//label[@for='show_hidden']")).click();

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