Перейти к содержимому

cenzor

Регистрация: 08 ноя 2017
Offline Активность: 14 ноя 2017 00:20
-----

Мои темы

Теряется фокус элемента

13 ноября 2017 - 03:44

Здравствуйте.

Не могу понять логику, почему так происходит, прошу подсказать.

Ищу элемент:

comment = driver.find_elements_by_xpath("//textarea[@placeholder = 'some text']")

пытаюсь вставить текст

comment[0].send_keys('bla bla bla...')

пишет:

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot focus element

Пробую после поиска делать по нему клик:

comment[0].click()

а потом вставить текст

comment[0].send_keys('bla bla bla...')

вываливается совсем другое исключение:

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

Как мне всё-таки вставить текст?

Спасибо.

 

P.S.: в качестве драйвера использую chrome headless


Selenium: PhantomJS не находит элемент по XPATH

09 ноября 2017 - 00:50

Всем привет.

Что уж греха таить, живой пример - инстаграм: необходимо добавить комментарий. В windows7+python3.6.2+selenium+geckodriver ищу элемент (сердечко для "лайка") по XPATH:

heart = driver.find_elements_by_xpath('//a[contains(@class, "_eszkz _l9yih")]')

- находит.

Ищу элемент (строку для добавления комментария) по XPATH:

comment = driver.find_elements_by_xpath('//textarea[@placeholder = "Add a comment..."]')

- находит.

Соответственно, в обоих случаях возвращается массив найденных элементов (на практике в массиве всего 1 элемент), обращаюсь к нему comment[0].send_keys(comment_text) и т. д.

В целом, всё работает.

Переношу всё на debian8+python3.4+selenium+PhantomJS. Код прежний, ищу элемент (сердечко для "лайка") по XPATH:

heart = driver.find_elements_by_xpath('//a[contains(@class, "_eszkz _l9yih")]')

- находит.

Ищу элемент (строку для добавления комментария) по XPATH:

comment = driver.find_elements_by_xpath('//textarea[@placeholder = "Add a comment..."]')

не находит.

Ставлю print(len(comment)) показывает 0. Соответственно, при обращении comment[0].send_keys(comment_keys) вываливается:

IndexError: list index out of range

 

1) Почему XPATH для "лайка" он находит, а для комментария - нет?

2) Если элемент по XPATH не найден, не должен ли он выбрасывать соответствующее исключение? Почему этого не происходит?