Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не возможно нажать по видимому элементу - Element is not visibility.

python
webdriver
Теги: #<Tag:0x00007f7b69851f38> #<Tag:0x00007f7b698514c0>

(Goshko Nazar) #1

Пытаюсь жмакать на кнопочку:
HTML - http://c2n.me/3najfHu
Python:

def select_tab(self, num_tab):

        tabs_list = ["li:nth-child(1) > a",
                    "li:nth-child(2) > a",
                    "li:nth-child(3) > a"]
        tab_but = WebDriverWait(self.driver, 5).until(ec.presence_of_element_located((By.XPATH, "//li[2]/a")))
        tab_but.click()
        self.selected_tab = num_tab
        if num_tab == 1:
            page = Profile(self.driver,self.base_url)
            return page
        elif num_tab == 2:
            page = Password(self.driver,self.base_url)
            return page
        elif num_tab == 3:
            page = Enrollments(self.driver,self.base_url)
            return page

Если ищу элемент на присутствие - падаю в click() - элемент невидим
Если проверяю на видимость - падаю с тайм-аутом.
Элемент виден, элемент жмакается мышкой
Каковы идеи?

ЗЫ. Action пробовал - тоже самое.
ЗЫЫ. Куда делся bb-code для вставки кода?


(Галина Балашкова) #2

возможно это “глюки” фаерфокса и несоответствующей версии seleniuma. я обновила селениум и как-то получше стало. может конечно не в этом, другие люди откоментят.


(Mykhailo Poliarush) #3

Идей не много если самой страницы не видно. Так могу только порекомендовать попробовать другое ожидание element_to_be_clickable

http://selenium.googlecode.com/git/docs/api/py/webdriver_support/selenium.webdriver.support.expected_conditions.html?highlight=expected_conditions#selenium.webdriver.support.expected_conditions.element_to_be_clickable


(Stan) #4

А другие варианты клика пробовали? Если падает конкретно на клике то можно попробовать кликнуть, например, с помощью жс-а.


(Goshko Nazar) #5

версия хром, до файрфокса не дошел пока.


(Goshko Nazar) #6

я уже пробовал все вещички из expected_conditions


(Goshko Nazar) #7

В кликах падаю - not visible element, а как джсом тапнуть по нему?


(Stan) #8
browser.execute_script('arguments[0].click();', element)

(Goshko Nazar) #9

а…оу, ка кто не сообразил) спасибо попробую


(Goshko Nazar) #10

Не работает(


(Stan) #11

а есть пример страницы в вебе где это можно попробовать? гадать на кофейной гущи самое дурацкре что тут можно делать :slight_smile: Может быть получится скопировать часть html и css и выложить на те же гитхаб пейджес или еще куда?


(Goshko Nazar) #12

Пример на скрине приложен.

Очень интересную штуку я получил
при попытке (см. код) вызвать метод is_visible() я получаю ошибку:

self = <pages.HomePage.My_Profile object at 0x03CFDF30>, num_tab = 2

def select_tab(self, num_tab):

        tabs_list = ["li:nth-child(1) > a",
                    "li:nth-child(2) > a",
                    "li:nth-child(3) > a"]
        tab_but = WebDriverWait(self.driver, 5).until(ec.presence_of_element_located((By.XPATH, "//li[2]/a")))
>           print(self.driver.is_visible(tab_but))
E           AttributeError: 'WebDriver' object has no attribute 'is_visible'

:335: AttributeError

(Goshko Nazar) #13

Побеждено.
Причина - слишком умный автотестер.
Решение - более длинный локатор к родителю.
всем ответевшим спасибо.