LINUX.ORG.RU

selenium и span

 , , ,


0

2

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


<div class="v-tree" tabindex="-1">
<div>
<div class="v-tree-node v-tree-node-leaf v-tree-node-root">
<div class="v-tree-node-caption">
<div>
<span>Обращения</span>

</div></div>

Пробовал такие варианты:

browser.find_element(By.XPATH, '//*[@class="v-tree-node-caption"]').click()
browser.find_element_by_css_selector('v-tree-node-caption').click()
browser.find_element_by_xpath('//dev[@class="v-tree-node-caption"]')

Еще пробовл находить span он его находит, но пишет, что-то типа что невидимый обект и не может кликнуть на него.



Последнее исправление: lexlex361 (всего исправлений: 1)

Как бы, by_css_selector означает синтаксис css, соответственно точки у классов

browser.find_element_by_css_selector('.v-tree-node-caption')
в 3м варианте надо dev на div поменять .

А вот By.XPATH я вообще не помню в питонем селениуме. Откуда он импортируется чтобы использовать ? Помню тольоко .find_elements_by_xpath, но могу ошибаться, давно в руки не брал

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 3)

Судя по первому варианту кнопка во фрейме? Если так, то на фрейм надо сначала переключиться, а потом искать локаторы.

Lordwind ★★★★★
()
Ответ на: комментарий от Dred

Вот в таком виде он находит объект видимо но не кликает на него или кликает но не попадает, там видимо как то нужно ниже по дереву двинуться.

browser.find_element_by_xpath('//div[@class="v-tree-node-caption"]')
lexlex361
() автор топика
Ответ на: комментарий от lexlex361

Я ламер в html и css, так что, возможно. Мои советы нерелевантны.

Ты как эти пути получаешь? Из браузера по copy css selector?

Если да то я бы посмотрел куда он на самом деле тыкает. Я это сделал через отображение svg-картинки на то место куда selenium тыкает.

true_admin ★★★★★
()
Ответ на: комментарий от lexlex361

Проверил сейчас, все нажимает. Видно, что вокруг объекта рамка появляется после клика

Dred ★★★★★
()

Чтобы кликнуть по элементу, необходимо, чтобы он был видимым. Смотри в стили, по-видимому его что-то скрывает. Например, может быть нужно будет на что-то навести курсор перед тем как кликнуть, чтобы элемент стал видимым. Для этой цели существует ActionChains.

Kilte ★★★★★
()
Ответ на: комментарий от Dred

А вот By.XPATH я вообще не помню в питонем селениуме. Откуда он импортируется чтобы использовать ?

Я помню, что там есть методы find_element_by_css_selector, find_element_by_xpath и т.д. Все они, ЕМНИП, вызывают метод find_elemnt с первым аргументом By.CSS_SELECTOR, By.XPATH и т.д. By — обычный класс с соответствующими полями. Похоже он и имелся ввиду.

Kilte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.