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

Как выглядит ваш код? Как говорит @StaticBeagle, а как насчет driver.findElement(By.id("show_hidden"));?
В css вы выбираете элемент, используя знак ID #, за которым следует идентификатор, как в вашем примере для ввода #show_hidden {border: 1px solid red;}.
@ggorlen Это именно то, что я пробовал в первую очередь, и я получаю ошибку ElementNotFound, поэтому я предполагал, что сначала мне нужно сфокусировать селектор на родительском div.
Это кажется странным. Вы уверены, что модель DOM загружена правильно? Можете ли вы сбросить DOM на Java, вместо того, чтобы смотреть на инструменты разработчика Chrome?
Просто небольшое примечание к одному из ваших комментариев - вы не должны сосредоточиться на родительском элементе для поиска по id. document.getElementById("show_hidden") всегда найдет <input id = "show_hidden">, независимо от того, где вы ищите.
Спасибо за информацию. Должно быть что-то еще, вызывающее ошибку, так как я делаю простой getElementById для этого имени ввода, и оно все еще появляется




Вы можете использовать любой из этих
.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();
Почему бы не использовать
idвхода в качестве селектора?