Я никак не могу найти этот элемент (facebook_bot) - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь создать бота на Facebook. Но я не могу найти элемент. Фактический элемент (как вы видите его, не заглядывая в код html) находится в окне (это окно, которое показывает, когда вы пытаетесь продать что-то на торговой площадке Facebook). Я уже нашел элемент внутри этого окна (driver.find_element_by_xpath ('// * [содержит (text (), "Artículo en venta")]'). Click ()), поэтому с 'frames' нет проблем

Вот код элемента:

<input class="_58al" type="text" aria-autocomplete="list" aria-controls="js_mq" aria-expanded="true" data-testid="searchable-text-input" role="combobox" placeholder="Selecciona una categoría" autocomplete="off" autocorrect="off" value="">

Я пробовал следующее:

 driver.find_element_by_xpath('//*[@id="js_st"]/input').click()
 driver.find_element_by_xpath('//input[@placeholder="Seleccione una categoría"]').click()
 driver.find_element_by_css_selector('input._58al').click()
 driver.find_element_by_link_text('Selecciona una categoría').click()
 driver.find_element_by_xpath('//*[contains(text(), "Selecciona una categoría")]').click()

Я использую Linux Mint в качестве моей ОС (если это вещество)

Синтаксис может быть неправильным. Если так, не стесняйтесь поправлять меня! Любые идеи будут уместны.

Большое вам спасибо!

1 Ответ

0 голосов
/ 01 апреля 2020

Я не работал с Python, но я вижу нарушения в ваших локаторах. Вы можете попробовать ниже локатора:

XPath: вы также можете выбрать любое значение атрибута вместо Placeholder. Убедитесь, что Xpath уникален для вашего элемента.

//input[@placeholder='Selecciona una categoría']

Вы можете использовать эти локаторы в своем коде python.

Ниже приведены причины, по которым я чувствую, что ваши локаторы не работают:

Нет идентификатора атрибут в коде вашего элемента:

driver.find_element_by_xpath('//*[@id="js_st"]/input').click()

Одинарные кавычки и двойные кавычки выглядят взаимозаменяемыми:

 driver.find_element_by_xpath('//input[@placeholder="Seleccione una categoría"]').click()

Локатор должен быть в двойных кавычках:

driver.find_element_by_css_selector('input._58al').click()

Элемент, к которому вы обращаетесь, не является ссылкой, поскольку не было атрибута href:

driver.find_element_by_link_text('Selecciona una categoría').click()

Элемент также не имеет текста согласно приведенному фрагменту:

driver.find_element_by_xpath('//*[contains(text(), "Selecciona una categoría")]').click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...