Python Selenium - Автоматизация заполнения форм - Нажмите на кнопку, которая не является кнопкой отправки и заполняет форму из списка - PullRequest
1 голос
/ 27 января 2020

Я пытаюсь автоматизировать заполнение CMS с помощью листа Excel. В моей CMS я хочу связать тег с моим объектом ID. Теги - это список для выбора. Так что моя таблица Excel в основном состоит из 2 столбцов (идентификатор и теги)

Пока все работает хорошо, за исключением одной кнопки. Эта кнопка связывает тег с его объектом, это не кнопка отправки, а кнопка без ввода.

<button class="btn btn-info link_tag">Link</button>

Вот часть кода:

# fill in the 'tag' form
driver.find_element_by_name('Tag').send_keys('tag_name')
# link the tag with the ID
driver.find_element_by_xpath('//*[@id="form1"]/fieldset[2]/div/div[2]/div/div/div/div[2]//*[@class="btn btn-info link_tag"]').click()

Сначала я заполнил это поле и выпадающий список предложений будут выходить

Пример для Google:

Example for Google

Однако после этого моя кнопка «Ссылка» , который должен связать тег, не работает. У меня нет сообщений об ошибках, просто ничего не происходит. Кнопка не относится к типу отправки, поэтому я решил, что проблема в этом? Или, может быть, проблема в том, что форма тега является формой поиска (она будет отображать предложения)?

Кроме того, чтобы отметить в веб-браузере, что открывается селен, я не могу сам нажать кнопку на кнопке с помощью мыши ни. Я нажимаю на него, но ничего не происходит. Я должен переписать тег, чтобы иметь возможность связать мой тег с моим идентификатором. Однако, если я выберу опцию из выпадающего списка, я смогу нажать кнопку.

Ниже есть кнопка отправки («Сохранить»), которая работает, но так как тег не связан с идентификатором нет ничего, чтобы спасти.

Если это сделано человеком, можно связать тег либо нажатием ENTER, либо нажатием этой кнопки «Ссылка» или клавиши Tab

Я пытался использовать send_keys (u '\ ue007 '), send_keys (Keys.ENTER), send_keys (Keys.TAB), click (), time.wait для ожидания страницы, но ни одно из этих решений не сработало (как для поля заполнения, так и для кнопки ссылки).

Есть ли идеи, как это решить?

1 Ответ

1 голос
/ 28 января 2020

Обновление, я нашел решение, которое на самом деле довольно глупо.

# fill in the 'tag' form
tag = driver.find_element_by_name('Tag') 
tag.send_keys('tag_name')
tag.send_keys(u'\ue007')
# link the tag with the ID
driver.find_element_by_xpath('//*[@id="form1"]/fieldset[2]/div/div[2]/div/div/div/div[2]//*[@class="btn btn-info link_tag"]').send_keys("\n")

Это сработало для меня. Мне нужно было найти способ «проверить» опцию в раскрывающемся списке, поэтому нажатие клавиши ввода помогло мне решить эту проблему.

Кроме того, кнопка «Отправить / Сохранить» не работала должным образом, поэтому я пытался подождать несколько секунд (это сработало), но это не идеальное решение. Однако добавление send_key ("\ n") мне помогло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...